加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

CXF WebService Hello World

发布时间:2020-12-17 00:29:35 所属栏目:安全 来源:网络整理
导读:? ? ? ? 由于公司现在是.Net系统于Java系统并存,项目中难免需要跨平台的远程服务调用。最近刚好有一个项目需要Java Web系统调用.Net提供的WebService服务。权衡了下各个因素,最后决定使用 Apache CXF框架,没有用过的同学可以参考http://cxf.apache.org/.
? ? ? ? 由于公司现在是.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. @WebService (?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> ?
完成以后,就可以像引用本地服务一样使用该远程服务了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读