SpringBoot创建WebService方法详解

 更新时间:2023年05月06日 10:45:08   作者:ceaningking  
这篇文章主要介绍了SpringBoot如何创建WebService,文中有详细的实现步骤以及示例代码,对学习或工作有一定的帮助,需要的朋友跟着小编一起来学习吧

开发环境: IDEA 2022.1.4

1. 概述

虽然webservice这块使用很少,但在局域网作服务还是相当不错。今天突生想法,想做一个来试试,查阅百度资料,亲手实践下。方便操作,便在现有得SpringBoot项目上,来实践下,也顺便试试Spring web服务与webservice功能是否可以一起发布。

我主要添加了三个java文件,一个接口IWebService,一个接口实现类IWebServiceImpl,一个配置类CxfConfig。

2. 实现步骤

2.1 POM现加依赖

        <!-- WebSevice -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.1.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.1.6</version>
        </dependency>

2.2  定义接口 IWebService

@WebService(name = "WebService", targetNamespace = "service.xtjk.ceaning.com")
@BindingType(SOAPBinding.SOAP12HTTP_BINDING)
public interface IWebService {
    @WebMethod
    String BedInfo() throws JsonProcessingException;
    @WebMethod
    Result<?> DeptInfo();
    @WebMethod
    Result<?> UserInfo();
    @WebMethod
    Result<?> WardInfo();
    @WebMethod
    Result<?> OrderInfo(@WebParam(name = "param") String param);
    @WebMethod
    Result<?> InPatiengInfo(@WebParam(name = "param") String param);
    @WebMethod
    Result<?> SaveGlu(@WebParam(name = "param") String param);
}

2.3 创建类 IWebServiceImpl 并实现接口 IWebService

@Slf4j
@Component
@WebService(name = "WebService",
        targetNamespace = "service.xtjk.ceaning.com",
        endpointInterface = "com.ceaning.xtjk.service.IWebService")
public class IWebServiceImpl implements IWebService {
    @Autowired
    private DictionaryMapper dictionaryMapper;
    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private InPatientMapper inPatientMapper;
    @Autowired
    private ResultMapper resultMapper;
 
    @Override
    public String BedInfo() throws JsonProcessingException {
        ObjectMapper obj= new ObjectMapper();
        List<Bed> list= null;
        try{
            list= dictionaryMapper.getBedInfo();
            return obj.writeValueAsString(Result.ok(list));
        } catch (Exception e){
            log.error(e.getMessage());
            return obj.writeValueAsString(Result.exception(e.getMessage()));
        }
    }
 
    @Override
    public String DeptInfo() throws JsonProcessingException {
        ObjectMapper obj= new ObjectMapper();
        List<Dept> list= null;
        try{
            list= dictionaryMapper.getDeptInfo();
            return obj.writeValueAsString(Result.ok(list));
        } catch (Exception e){
            log.error(e.getMessage());
            return obj.writeValueAsString(Result.exception(e.getMessage()));
        }
    }
 
    @Override
    public String UserInfo() throws JsonProcessingException {
        ObjectMapper obj= new ObjectMapper();
        List<User> list= null;
        try{
            list= dictionaryMapper.getUserInfo();
            return obj.writeValueAsString(Result.ok(list));
        } catch (Exception e){
            log.error(e.getMessage());
            return obj.writeValueAsString(Result.exception(e.getMessage()));
        }
    }
 
    @Override
    public String WardInfo() throws JsonProcessingException {
        ObjectMapper obj= new ObjectMapper();
        List<Ward> list= null;
        try{
            list= dictionaryMapper.getWardInfo();
            return obj.writeValueAsString(Result.ok(list));
        } catch (Exception e){
            log.error(e.getMessage());
            return obj.writeValueAsString(Result.exception(e.getMessage()));
        }
    }
 
    @Override
    public String OrderInfo(String param) throws JsonProcessingException {
        ObjectMapper mapper= new ObjectMapper();
        List<Order> list= null;
        try{
            OrderParam obj= mapper.readValue(param, OrderParam.class);
            list= orderMapper.getList(obj);
            return mapper.writeValueAsString(Result.ok(list));
        } catch (Exception e){
            log.error(e.getMessage());
            return mapper.writeValueAsString(Result.exception(e.getMessage()));
        }
    }
 
    @Override
    public String InPatiengInfo(String param) throws JsonProcessingException {
        ObjectMapper mapper= new ObjectMapper();
        List<InPatient> list= null;
        try{
            InPatientParam obj= mapper.readValue(param, InPatientParam.class);
            list= inPatientMapper.getList(obj);
            return mapper.writeValueAsString(Result.ok(list));
        } catch (Exception e){
            log.error(e.getMessage());
            return mapper.writeValueAsString(Result.exception(e.getMessage()));
        }
    }
 
    @Override
    public String SaveGlu(String param) throws JsonProcessingException {
        ObjectMapper mapper= new ObjectMapper();
        DbResult ret= null;
        try{
            ResultParam obj= mapper.readValue(param, ResultParam.class);
            ret= resultMapper.save(obj);
            if (ret.getCode().trim().equals("T")){
                return mapper.writeValueAsString(Result.ok(ret.getMessage()));
            }
            else{
                return mapper.writeValueAsString(Result.error(ret.getMessage()));
            }
        } catch (Exception e){
            log.error(e.getMessage());
            return mapper.writeValueAsString(Result.exception(e.getMessage()));
        }
    }
}

2.4  配置类  CxfConfig

@Configuration
public class CxfConfig {
    @Autowired
    private IWebService service;
 
    @Bean
    public ServletRegistrationBean disServlet(){
        return new ServletRegistrationBean(new CXFServlet(), "/open/xtjk/*");
    }
    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus(){
        return new SpringBus();
    }
    @Bean
    public Endpoint endpoint(){
        EndpointImpl endpoint= new EndpointImpl(springBus(), service);
        endpoint.publish("/IWebService");
        return endpoint;
    }
}

2.5 启动服务

浏览器访问: http://127.0.0.1:8090/open/xtjk/IWebService?wsdl

需要注意URL路径和CxfConfig得配置关联

2.6 测试

我使用另一个电脑安装得SoapUI进行测试,数据获取正常。就不截图了。

篇幅有限,就不罗列其他得了。Springboot相关知识网上很多。

到此这篇关于SpringBoot创建WebService方法详解的文章就介绍到这了,更多相关SpringBoot创建WebService内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中泛型的使用和优点解析

    Java中泛型的使用和优点解析

    这篇文章主要介绍了Java中泛型的使用和优点解析,泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法,需要的朋友可以参考下
    2023-09-09
  • Java 将Word转为HTML的方法

    Java 将Word转为HTML的方法

    本文介绍如何在JAVA程序中将Word文档通过Document.saveToFile()方法转换为HTML文档,导入jar的两种方法,文中给大家详细介绍,感兴趣的朋友一起看看吧
    2021-10-10
  • Java的Swing编程中使用SwingWorker线程模式及顶层容器

    Java的Swing编程中使用SwingWorker线程模式及顶层容器

    这篇文章主要介绍了在Java的Swing编程中使用SwingWorker线程模式及顶层容器的方法,适用于客户端图形化界面软件的开发,需要的朋友可以参考下
    2016-01-01
  • Java常见问题之javac Hello.java找不到文件的解决方法

    Java常见问题之javac Hello.java找不到文件的解决方法

    刚开始编写java代码时,肯定会遇到各种各样的bug,当然对于初学者这也是能理解的,下面这篇文章主要给大家介绍了关于Java常见问题之javac Hello.java找不到文件解决的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下。
    2018-01-01
  • Java 动态模拟操作系统进程调度算法

    Java 动态模拟操作系统进程调度算法

    这篇文章主要介绍了采用java语言编程模拟N个进程采用动态高优先权优先进程调度算法。文中代码具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2021-12-12
  • Java反射(Class类,Class对象获取)

    Java反射(Class类,Class对象获取)

    下面是对Java反射机制是在程序的运行过程中,Java语言的反射机制的超详细解说,点进来的小伙伴不要错过奥
    2021-08-08
  • Java中为何要使用ArrayList

    Java中为何要使用ArrayList

    这篇文章主要介绍了Java中为何要使用ArrayList,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-09-09
  • java代码实现mysql分表操作(用户行为记录)

    java代码实现mysql分表操作(用户行为记录)

    这篇文章主要介绍了java代码实现mysql分表操作(用户行为记录),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Mybatis关联查询之一对多和多对一XML配置详解

    Mybatis关联查询之一对多和多对一XML配置详解

    这篇文章主要介绍了Mybatis关联查询之一对多和多对一XML配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Java小程序求圆的周长和面积实例

    Java小程序求圆的周长和面积实例

    这篇文章主要介绍了首先用蒙塔卡洛算法求圆周率近似值,然后根据此近似值输出圆的周长和面积,具有一定参考价值,需要的朋友可以了解下。
    2017-09-09

最新评论