博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CXF WebService Hello World
阅读量:6617 次
发布时间:2019-06-25

本文共 2984 字,大约阅读时间需要 9 分钟。

  hot3.png

        由于公司现在是.Net系统于Java系统并存,项目中难免需要跨平台的远程服务调用。最近刚好有一个项目需要Java Web系统调用.Net提供的WebService服务。权衡了下各个因素,最后决定使用 Apache CXF框架,没有用过的同学可以参考http://cxf.apache.org/.
 
        
废话不多说,上例子,方便大家参考,也给自己做个备份。
 
项目环境:Spring、Struts2、Ibatis、Maven
 
一、添加依赖
 
Java代码   
  1. <dependency>  
  2.      <groupId>org.apache.cxf</groupId>  
  3.      <artifactId>cxf-rt-core</artifactId>  
  4.      <version>2.2.4</version>  
  5. </dependency>  
  6. <dependency>  
  7.      <groupId>org.apache.cxf</groupId>  
  8.      <artifactId>cxf-rt-transports-http</artifactId>  
  9.      <version>2.2.4</version>  
  10. </dependency>  
  11. <dependency>  
  12.      <groupId>org.apache.cxf</groupId>  
  13.      <artifactId>cxf-rt-databinding-aegis</artifactId>  
  14.      <version>2.2.4</version>  
  15. </dependency>  
  16. <dependency>  
  17.      <groupId>org.apache.cxf</groupId>  
  18.      <artifactId>cxf-rt-frontend-jaxws</artifactId>  
  19.      <version>2.2.4</version>  
  20. </dependency>  
  21. <dependency>  
  22.      <groupId>commons-httpclient</groupId>  
  23.      <artifactId>commons-httpclient</artifactId>  
  24.      <version>3.1</version>  
  25. </dependency>   
二、定义接口
 
根据wsdl文件,创建对应的Java服务。
 
Java代码 
  1. <wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://tempuri.org/">  
  2. <wsdl:types>  
  3. <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">  
  4. <s:element name="AddUser">  
  5. <s:complexType>  
  6. <s:sequence>  
  7. <s:element minOccurs="1" maxOccurs="1" name="name" type="s:string"/>  
  8. <s:element minOccurs="1" maxOccurs="1" name="password" type="s:string"/>  
  9. </s:sequence>  
  10. </s:complexType>  
  11. </s:element>  
  12. <s:element name="AddUserResponse">  
  13. <s:complexType>  
  14. <s:sequence>  
  15. <s:element minOccurs="1" maxOccurs="1" name="AddUserResult" type="s:int"/>  
  16. </s:sequence>  
  17. </s:complexType>  
  18. </s:element>  
  19. </s:schema>  
  20. </wsdl:types>  
  21. ...  
  22. </wsdl:definitions>  
Java代码 
  1. package com.test.ws;  
  2. import javax.jws.WebMethod;  
  3. import javax.jws.WebParam;  
  4. import javax.jws.WebResult;  
  5. import javax.jws.WebService;  
  6. ( targetNamespace="http://tempuri.org/" )  
  7. public interface TestService {  
  8.     @WebMethod(operationName="AddUser")  
  9.     @WebResult(targetNamespace="http://tempuri.org/",name=AddOrderResult" )  
  10.     public int addUser(  
  11. @WebParam(name="name",targetNamespace="http://tempuri.org/")String name,   
  12. @WebParam(name="password",targetNamespace="http://tempuri.org/")String password);  
  13. }  
三、配置服务
 
Java代码 
  1. <bean id="testService" class="com.test.ws.TestService"   
  2. factory-bean="clientFactory" factory-method="create"/>  
  3. <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">  
  4. <property name="serviceClass" value="com.test.ws.TestService"/>  
  5. <property name="address" value="http://192.168.1.101/Service/TestService.asmx"/>  
  6. <property name="bindingId" value="http://schemas.xmlsoap.org/wsdl/soap12/"/>  
  7. </bean>  
完成以后,就可以像引用本地服务一样使用该远程服务了。

转载于:https://my.oschina.net/itjava/blog/99587

你可能感兴趣的文章
【云图】如何设置微信里的全国实体店地图?
查看>>
db file async I/O submit 等待事件优化
查看>>
李开复谈未来工作:虽然会被AI取代,但谁说人类非得工作不可?
查看>>
Intercom的持续部署实践:一天部署100次,1次10分钟
查看>>
SpringBoot权限控制
查看>>
阿里云中间件技术 促进互联网高速发展
查看>>
智能时代悄然到来 物联网称王将引爆传感器产业
查看>>
Java中HashMap的原理分析
查看>>
React Native入门项目与解析
查看>>
云计算:大势所趋 你准备好了么?
查看>>
数据资产的运营商--天市大数据交易平台
查看>>
中小企业如何成功转型跨境电商
查看>>
java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**
查看>>
《ANTLR 4权威指南》——2.5 语法分析树监听器和访问器
查看>>
02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译...
查看>>
这些国货,在阿里平台上被美国剁手党抢疯了
查看>>
《Excel 职场手册:260招菜鸟变达人》一第 2 招 常用快捷键Windows与Mac对照
查看>>
《Greenplum企业应用实战》一第1章 Greenplum简介1.1 Greenplum的起源和发展历程
查看>>
开源世界已成围城:成本让企业蜂拥而来,也让企业退缩转投
查看>>
《Python编程快速上手——让繁琐工作自动化》——1.4 在变量中保存值
查看>>