ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java开发或调用WebService的几种方式 [打印本页]

作者: 立聪堂德州十三局店    时间: 2025-1-7 01:39
标题: Java开发或调用WebService的几种方式
Java开发或调用WebService的几种方式

文章目次


一.JDK自带的 JAX-WS 方式开发WebService服务

1.服务端开发与发布

打开浏览器输入http://127.0.0.1:8888/JaxWSTestwsdl访问,如下面内容

截图内容1
  1. <!--
  2. Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e.
  3. -->
  4. <!--
  5. Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e.
  6. -->
  7. <definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://wsimpl.jaxws/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://wsimpl.jaxws/" name="JaxWsDemoImplService">
  8. <types>
  9. <xsd:schema>
  10. <xsd:import namespace="http://wsimpl.jaxws/" schemaLocation="http://127.0.0.1:8888/JaxWSTest?xsd=1"/>
  11. </xsd:schema>
  12. </types>
  13. <message name="helloJaxWS">
  14. <part name="parameters" element="tns:helloJaxWS"/>
  15. </message>
  16. <message name="helloJaxWSResponse">
  17. <part name="parameters" element="tns:helloJaxWSResponse"/>
  18. </message>
  19. <portType name="JaxWsDemoImpl">
  20. <operation name="helloJaxWS">
  21. <input wsam:Action="http://wsimpl.jaxws/JaxWsDemoImpl/helloJaxWSRequest" message="tns:helloJaxWS"/>
  22. <output wsam:Action="http://wsimpl.jaxws/JaxWsDemoImpl/helloJaxWSResponse" message="tns:helloJaxWSResponse"/>
  23. </operation>
  24. </portType>
  25. <binding name="JaxWsDemoImplPortBinding" type="tns:JaxWsDemoImpl">
  26. <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
  27. <operation name="helloJaxWS">
  28. <soap:operation soapAction=""/>
  29. <input>
  30. <soap:body use="literal"/>
  31. </input>
  32. <output>
  33. <soap:body use="literal"/>
  34. </output>
  35. </operation>
  36. </binding>
  37. <service name="JaxWsDemoImplService">
  38. <port name="JaxWsDemoImplPort" binding="tns:JaxWsDemoImplPortBinding">
  39. <soap:address location="http://127.0.0.1:8888/JaxWSTest"/>
  40. </port>
  41. </service>
  42. </definitions>
复制代码
浏览器中输入wsdl文档中的 http://127.0.0.1:8888/JaxWSTestxsd=1可检察绑定的参数等信息看如下图:

截图内容2
  1. <!--
  2. Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e.
  3. -->
  4. <xs:schema xmlns:tns="http://wsimpl.jaxws/" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://wsimpl.jaxws/">
  5. <xs:element name="helloJaxWS" type="tns:helloJaxWS"/>
  6. <xs:element name="helloJaxWSResponse" type="tns:helloJaxWSResponse"/>
  7. <xs:complexType name="helloJaxWS">
  8. <xs:sequence>
  9. <xs:element name="userName" type="xs:string" minOccurs="0"/>
  10. </xs:sequence>
  11. </xs:complexType>
  12. <xs:complexType name="helloJaxWSResponse">
  13. <xs:sequence>
  14. <xs:element name="jaxWSResult" type="xs:string" minOccurs="0"/>
  15. </xs:sequence>
  16. </xs:complexType>
  17. </xs:schema>
复制代码
2.客户端开发与测试

切换到要天生客户端源码的路径下,如下:
  1. cd F:SpringBootProjectswebServiceDemojwsDemosrcmainjavademoOneclient>
复制代码
根据wsdl文档地址天生源码信息:
  1. F:SpringBootProjectswebServiceDemojwsDemosrcmainjavademoOneclient>
  2. wsimport -d F:SpringBootProjectswebServiceDemojwsDemosrcmainjavademoOneclient
  3. -keep -verbose http://127.0.0.1:8888/JaxWSTest?wsdl
复制代码
参数说明:
  1. wsimport : 导入命令,如果使用cxf就换成 wsdl2java  命令
  2. -d [源码位置]      : 指定要生成的源码的目录,不指定则默认在哪个目录打开的cmd窗口,就生在那个目录下
  3. -keep : 是否生成*.java的源文件,写了此参数则直接生成*.java与*.class文件,不写此参数则只有*.class文件
  4. -verbose : 显示文件生成过程中的详细信息
  5. -p [包名]: 指定要生成在哪个包下,不指定生成时取默认
复制代码
执行结果:
  1. 调用WebService执行结果:hello,Tom This is a Web Service developed through JAX-WS
复制代码
二.Axis1.4调用.Net返回值为DataSet范例的WebService接口

1.相关说明

2. Axis1.4客户端WebService服务

1.Axis1.4下载


4.maven环境的话,在pom.xml中添加下面的依靠即可
  1. <!--Axis1.4 及其依赖 begin-->
  2.         <!-- https://mvnrepository.com/artifact/org.apache.axis/axis -->
  3.         <dependency>
  4.             <groupId>org.apache.axis</groupId>
  5.             <artifactId>axis</artifactId>
  6.             <version>1.4</version>
  7.         </dependency>
  8.         <!-- https://mvnrepository.com/artifact/jaxrpc/jaxrpc -->
  9.         <!-- https://mvnrepository.com/artifact/axis/axis-jaxrpc -->
  10.         <dependency>
  11.             <groupId>axis</groupId>
  12.             <artifactId>axis-jaxrpc</artifactId>
  13.             <version>1.4</version>
  14.         </dependency>
  15.         <!-- https://mvnrepository.com/artifact/axis/axis-ant -->
  16.         <dependency>
  17.             <groupId>axis</groupId>
  18.             <artifactId>axis-ant</artifactId>
  19.             <version>1.4</version>
  20.         </dependency>
  21.         <!-- https://mvnrepository.com/artifact/axis/axis-saaj -->
  22.         <dependency>
  23.             <groupId>axis</groupId>
  24.             <artifactId>axis-saaj</artifactId>
  25.             <version>1.4</version>
  26.         </dependency>
  27.         <!-- https://mvnrepository.com/artifact/wsdl4j/wsdl4j -->
  28.         <dependency>
  29.             <groupId>wsdl4j</groupId>
  30.             <artifactId>wsdl4j</artifactId>
  31.             <version>1.6.3</version>
  32.         </dependency>
  33.         <!-- https://mvnrepository.com/artifact/commons-discovery/commons-discovery -->
  34.         <dependency>
  35.             <groupId>commons-discovery</groupId>
  36.             <artifactId>commons-discovery</artifactId>
  37.             <version>0.5</version>
  38.         </dependency>
  39.         <!--Axis1.4 及其依赖 end-->
  40.                 <!-- 引入dom4j 解析数据时用-->
  41. <!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
  42.         <dependency>
  43.             <groupId>org.dom4j</groupId>
  44.             <artifactId>dom4j</artifactId>
  45.             <version>2.1.1</version>
  46.         </dependency>
复制代码
2.WebService服务接口地址及方法

3.编写调用WebService服务的方法及数据剖析

三. CXF 开发WebService接口

1. jax-ws实现

   场景:CXF结合Spring实现发布与调用简朴的WebService
  



2. CXF-RESTFul服务实现


   JAX-RS是Java提供用于开发RESTful Web服务基于注解(annotation)的API。JAX-RS旨在界说一个同一的规范,使得Java步伐员可以利用一套固定的接口来开发REST应用,避免了依靠第三方框架。同时JAX-RS利用POJO编程模子和基于注解的配置并集成JAXB,可以有效缩短REST应用的开发周期。JAX-RS只界说RESTful API,详细实现由第三方提供,如Jersey、Apache CXF等。
  JAX-RS包含近五十多个接口、注解和抽象类:

JAX-RS常用注解:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4