springboot整合CXF webservice技术过程
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
作者 | 黄昏夕阳
来源 | urlify.cn/ZVzIFz
因为最近公司需要对接外部接口,外部接口有webservice和restful两种风格,在这里仅分享下springboot整合CXF webservice的过程(之前没有做过webservice,以下内容仅供参考)
1.创建springboot项目(webserviceidea工具开发过程),一路next
2.整合webservice所需依赖(打开项目的pom文件,加入CXF依赖)
org.apache.cxf
cxf-spring-boot-starter-jaxws
3.3.1
3.在项目中创建相应的包以及配置文件中的配置
3.1在新建的项目中建立相应的包
3.2可以设置项目端口号以及服务地址的前缀,默认为/services/**
4.创建接口服务以及实现类
4.1创建服务接口以及实现类
@WebService(name = "InOrderService", // 与接口中指定的name一致
targetNamespace = "http://service.omswmswebservice.zhqc.com/")
public interface InOrderService {
/**
* @param requestBody
* @return
*/
@WebMethod
@WebResult(name = "String",targetNamespace = "")
public String inOrderService(@WebParam(name = "requestBody") String requestBody);
}
@WebService(serviceName = "InOrderService", // 与接口中指定的name一致
targetNamespace = "http://service.omswmswebservice.zhqc.com/",//与接口中的命名空间一致,一般是接口的包名倒
endpointInterface = "com.zhqc.omswmswebservice.service.InOrderService")//接口地址
@Component
public class InOrderServiceImpl implements InOrderService {
/**
* 入库订单
* @param requestBody
* @return
*/
@Override
public String inOrderService(String requestBody) {
InOrderReq req = null;
try {
req = XmlUtil.xmlToBean(requestBody, InOrderReq.class);
//业务处理
if (req != null){
//响应对象封装-测试数据
InOrderResp resp = new InOrderResp();
InOrderTcpContRespDto tcp = new InOrderTcpContRespDto();
InOrderResponseRespDto response = new InOrderResponseRespDto();
response.setRspCode("200");
response.setRspDesc("成功");
response.setRspType("入库订单类型");
tcp.setReqTime("20201020152500");
tcp.setResponse(response);
InOrderSvcContRespDto svc = new InOrderSvcContRespDto();
svc.setOrderCode("1111111");
InOrderContractRootRespDto contractRoot= new InOrderContractRootRespDto();
contractRoot.setTcpCont(tcp);
contractRoot.setSvcCont(svc);
resp.setContractRoot(contractRoot);
return XmlUtil.toXml(resp);
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
5.建立服务配置类,统一的发布相应的接口服务
@Configuration
public class WebserviceConfig {
/**
* CXF默认的服务路径
* @return
*/
@Bean
public ServletRegistrationBean dispatcherServletForWebservice(){
return new ServletRegistrationBean(new CXFServlet(),"/services/*");
}
@Bean(name = Bus.DEFAULT_BUS_ID)
public SpringBus springBus(){
return new SpringBus();
}
/**
* @return
*/
@Bean
public InOrderService inOrder(){
return new InOrderServiceImpl();
}
/**
* 访问地址 http://127.0.0.1:8080/services/inOrderService?wsdl
* @return
*/
@Bean
public Endpoint endpoint(){
EndpointImpl endpoint = new EndpointImpl(springBus(),inOrder());
endpoint.publish("/inOrderService");
return endpoint;
}
}
6.发布接口服务
直接启动程序入口
7.检测接口服务是否成功
访问:
http://127.0.0.1:8080/services/InOrderService?wsdl
注意:后缀一定要加?wsdl
8.建立测试类,测试服务端和客户端能否通信
根据你的接口文档的请求参数和响应参数来创建测试数据,可以检查接口的数据格式和接口是否相符了,开始你的webservice之旅!
粉丝福利:实战springboot+CAS单点登录系统视频教程免费领取
???
?长按上方微信二维码 2 秒即可获取资料
感谢点赞支持下哈
评论