SpringBoot创建WebService方法详解
作者:ceaningking 时间:2022-02-08 10:29:31
开发环境: 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相关知识网上很多。
来源:https://blog.csdn.net/ceaningking/article/details/130456201
标签:SpringBoot,WebService
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java+TestNG接口自动化入门详解
2023-11-05 04:37:58
![](https://img.aspxhome.com/file/2023/1/73101_0s.jpg)
Java8新特性:lambda表达式总结
2023-11-29 00:16:52
java中Vector类的常用方法详解
2023-11-26 10:29:07
![](https://img.aspxhome.com/file/2023/4/60234_0s.png)
Java序列化与反序列化的实例分析讲解
2022-09-16 05:58:39
C++实现LeetCode(9.验证回文数字)
2023-06-21 00:20:38
Spring Cache和EhCache实现缓存管理方式
2023-01-17 01:44:40
![](https://img.aspxhome.com/file/2023/7/64927_0s.png)
Java杂谈之重复代码是什么
2022-06-08 15:07:24
C#常用数据结构和算法总结
2021-10-31 22:05:29
![](https://img.aspxhome.com/file/2023/6/69206_0s.png)
在AOP中Spring生成代理类的两种方式
2023-12-08 19:13:36
C语言实现扫雷游戏(含注释详解)
2023-11-02 15:25:07
![](https://img.aspxhome.com/file/2023/4/107384_0s.jpg)
JAVA对list集合进行排序Collections.sort()
2023-03-31 11:14:12
java多线程CountDownLatch与线程池ThreadPoolExecutor/ExecutorService案例
2021-06-21 12:29:50
![](https://img.aspxhome.com/file/2023/8/64388_0s.jpg)
Java中避免空指针异常的方法
2023-05-08 21:00:27
SpringBoot框架中Mybatis-plus的简单使用操作汇总
2022-12-17 19:10:53
C#中的那些警告该如何去除(完全去除C#警告)
2023-09-07 20:55:53
![](https://img.aspxhome.com/file/2023/1/76381_0s.png)
Android巧用XListView实现万能下拉刷新控件
2023-07-25 00:33:03
java中的Arrays这个工具类你真的会用吗(一文秒懂)
2021-11-28 06:25:11
Java数据结构之队列(动力节点Java学院整理)
2021-09-22 04:58:19
![](https://img.aspxhome.com/file/2023/6/65746_0s.png)
Maven+Tomcat8 实现自动化部署的方法
2023-01-03 06:44:20
Maven打包没有指定主类问题(xxx.jar中没有主清单属性)
2023-11-26 21:34:44