前言:
眼前小伙伴们对“apachecxf根据wsdl生成”大概比较关怀,咱们都想要学习一些“apachecxf根据wsdl生成”的相关知识。那么小编同时在网络上搜集了一些有关“apachecxf根据wsdl生成””的相关资讯,希望咱们能喜欢,咱们一起来学习一下吧!作者 | 黄昏夕阳
来源 | urlify.cn/ZVzIFz
因为最近公司需要对接外部接口,外部接口有webservice和restful两种风格,在这里仅分享下springboot整合CXF webservice的过程(之前没有做过webservice,以下内容仅供参考)
1.创建springboot项目(webserviceidea工具开发过程),一路next
2.整合webservice所需依赖(打开项目的pom文件,加入CXF依赖)
<!-- CXF webservice --><dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.3.1</version></dependency><!-- CXF webservice -->
3.在项目中创建相应的包以及配置文件中的配置
3.1在新建的项目中建立相应的包
3.2可以设置项目端口号以及服务地址的前缀,默认为/services/**
4.创建接口服务以及实现类
4.1创建服务接口以及实现类
@WebService(name = "InOrderService", // 与接口中指定的name一致 targetNamespace = ";)public interface InOrderService { /** * @param requestBody * @return */ @WebMethod @WebResult(name = "String",targetNamespace = "") public String inOrderService(@WebParam(name = "requestBody") String requestBody);}@WebService(serviceName = "InOrderService", // 与接口中指定的name一致 targetNamespace = ";,//与接口中的命名空间一致,一般是接口的包名倒 endpointInterface = "com.zhqc.omswmswebservice.service.InOrderService")//接口地址@Componentpublic 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.建立服务配置类,统一的发布相应的接口服务
@Configurationpublic 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(); } /** * 访问地址 ; * @return */ @Bean public Endpoint endpoint(){ EndpointImpl endpoint = new EndpointImpl(springBus(),inOrder()); endpoint.publish("/inOrderService"); return endpoint; }}
6.发布接口服务
直接启动程序入口
7.检测接口服务是否成功
访问:
注意:后缀一定要加?wsdl
8.建立测试类,测试服务端和客户端能否通信
根据你的接口文档的请求参数和响应参数来创建测试数据,可以检查接口的数据格式和接口是否相符了,开始你的webservice之旅!
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #apachecxf根据wsdl生成