Webservice实现与调用(基于Spring的多种方式)
2017-11-27 09:43
267 查看
一、Webservice实现
实现方式分类
1.spring实现
bean配置<beanclass="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter"> <propertyname="baseAddress"value="http://localhost:8088/"/> </bean>
service
@Component @WebService(serviceName="sapPushExpenseWebservice") publicclassSapPushExpenseWebservice{ privatestaticLoggerlogger=LoggerFactory.getLogger(SapPushExpenseWebservice.class); @WebMethod publicResult<Object>pushExpense(@WebParam(name="expenseDTOSet")Set<String>expenseDTOSet){ logger.info(JSON.toJSONString(expenseDTOSet)); returnnull; } }
2.springboot实现
Cxfboot配置<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>
@Configuration publicclassSapCxfConfig{ @Bean publicServletRegistrationBeandispatcherServlet(){ returnnewServletRegistrationBean(newCXFServlet(),"/sap/soap/*"); } @Bean(name=Bus.DEFAULT_BUS_ID) publicSpringBusspringBus(){ returnnewSpringBus(); } @Bean publicISapPushExpenseWebservicesapPushExpenseWebservice(){ returnnewSapPushExpenseWebservice(); } @Bean publicEndpointendpoint(){ EndpointImplendpoint=newEndpointImpl(springBus(),sapPushExpenseWebservice()); endpoint.publish("/push"); returnendpoint; } }
service实现
@WebService publicinterfaceISapPushExpenseWebservice{ @WebMethod Result<Object>pushExpense(Set<SapExpenseDTO>expenseDTOSet); } publicclassSapPushExpenseWebserviceimplementsISapPushExpenseWebservice{ privatestaticLoggerlogger=LoggerFactory.getLogger(SapPushExpenseWebservice.class); @Autowired privateISapExpenseServicesapExpenseService; @Override publicResult<Object>pushExpense(Set<SapExpenseDTO>expenseDTOSet){ logger.info(JSON.toJSONString(expenseDTOSet)); returnsapExpenseService.pushExpense(expenseDTOSet); } }
3.dubbo实现
*'target='_blank'>http://blog.csdn.net/u012129031/article/details/53259877[/code] 二、Webservice调用
cxf客户端生产代码
下载地址http://cxf.apache.org/
生成代码远程生成 ./wsdl2java-d/Users/moxingwang/Desktop/soap-clienthttp://localhost:8080/sap/soap/user?wsdl本地生成 ./wsdl2java-pcom.chinaredstar.bill.integration.demo.test-d/Users/moxingwang/Desktop/soap/Users/moxingwang/Desktop/ss.xml 使用代理调用
依赖jar<!--https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-jaxws--> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.9</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>3.1.9</version> </dependency>
调用代码1.第一种方式调用publicstaticvoidmain(String[]args){ JaxWsDynamicClientFactorydcf=JaxWsDynamicClientFactory.newInstance(); Clientclient=dcf.createClient("http://192.168.224.182:8088/sapPushExpenseWebservice?wsdl"); try{ List<String>list=newArrayList<>(); list.add("测试"); Object[]objects=client.invoke("pushExpense",list); System.out.println(JSON.toJSONString(objects[0])); }catch(Exceptione){ e.printStackTrace(); } }2.第二种方式调用JaxWsProxyFactoryBeanfactory=newJaxWsProxyFactoryBean(); factory.setServiceClass(SIZFIFMECSRECEIVEOS.class); factory.setUsername("ZWS_ECS"); factory.setPassword("abcd1234"); factory.setAddress("http://172.16.3.21:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_NREM&receiverParty =&receiverService=&interface=SI_ZREI_BAPI_RE_CN_OVER_OS&interfaceNamespace=http%3A%2F%2Fchinaredstar.com%2Fecc2oms"); SIZFIFMECSRECEIVEOSport=(SIZFIFMECSRECEIVEOS)factory.create(); ZFIFMECSRECEIVEzfifmecsreceive=newZFIFMECSRECEIVE(); zfifmecsreceive.setICBUTYNUM("121221"); TABLEOFZMMFIFMCOMONOUTNEWtableofzmmfifmcomonoutnew=newTABLEOFZMMFIFMCOMONOUTNEW(); zfifmecsreceive.setETBELNR(tableofzmmfifmcomonoutnew); ZFIFMECSRECEIVEResponsea=port.siZFIFMECSRECEIVEOS(zfifmecsreceive);
相关文章推荐
- 基于WebService实现远程调用方式的系统间通信
- 基于WebService实现远程调用方式的系统间通信
- 基于Eclipse Maven的Spring4/Spring-MVC/Hibernate4整合之八:一个简单例子演示Spring-MVC中多种参数传递方式
- 改进的“以非泛型方式调用泛型方法”之基于DynamicMethod的实现
- Spring声明式事务管理(基于注解方式实现)
- Spring学习总结——Spring实现AOP的多种方式
- 多种方式实现JS调用后台方法进行数据交互
- 基于jdk1.6 cxf实现webservice,以及安卓调用webservice
- Android基于SOAP标准调用Webservice实现数据交互
- java 实现WebService 以及不同的调用方式
- Maven+SpringMVC+CXF整合实现webservice服务的发布与调用
- 基于SpringBoot使用Spring jpa实现对Oracle表的增、删、改、查的Spring WebService
- java 实现WebService 以及不同的调用方式
- Spring实现IoC的多种方式小结
- 基于HttpClient实现RPC远程服务调用【SpringBoot项目】
- Spring学习总结(一)——Spring实现IoC的多种方式
- java 实现WebService 以及不同的调用方式
- C# 小规模网络远程调用的基类(基于Socket方式)实现
- Spring基础学习(九)——基于AspectJ的两种AOP实现方式
- java 实现WebService 以及不同的调用方式