java中webservice生成/调用方式小结

时间:2024-03-23 17:09:11
一、通过axis2方式发布
1、用POJO形式发布(无需配置)
(1)将axis2.war防置tomcat的webapps中,启动服务器
(2)将没有package包(pojo类不能放置在任何包中)的class文件放置到放置在C:\apache-tomcat-8.5.20\webapps\axis2\WEB-INF\pojo
(3)重新启动tomcat
2、通过配置services.xml然后打包成aar文件进行发布
(1)创建需要提供服务的类class文件
(2)编写services.xml文件
(3)根据class文件的package路径配置如下
D:\ws\ com\sinosoft\webservice\HelloServiceNew.class
D:\ws\META-INF\services.xml
(4)然后在ws目录下进行打包操作,jar cvf ws.aar .
(5)将生成好的aar文件放在 <Tomcat安装目录>\webapps\axis2\WEB-INF\services目录中,完成。
其中配置文件格式如图
java中webservice生成/调用方式小结
没有返回值时:<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
有返回值时: <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
3、通过导入axis2相关包,在自定义web工程中发布webservice
(1)准备好相关服务类
(2)配置web.xml文件,加入axis2的servlet配置:
<!--Axis2 config start-->
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
(3)将原始axis2的工程下的modules、service、lib和conf文件夹拷至自定义工程下的WEB-INF目录下
(4)然后在services下新建{servicename}(自定义也可以)/META-INF路径,META-INF下新建services.xml:
java中webservice生成/调用方式小结
(5)启动服务,访问http://127.0.0.1:8080/webServe/services/{services.xml中parameter的name}?wsdl即可
4、通过javax.jws.*相关包的注解方式发布webservice服务
(1)在没有axis2jar包的普通java工程或web工程下(可以使用监听器或者Servlet来发布WebService),新建普通类
(2)[email protected]注解类,提供服务的方法不能为static、final
(3)如图方法,发布后访问,即可http://localhost:9001/hello?wsdl
java中webservice生成/调用方式小结
java中webservice生成/调用方式小结
(4)暂时不提供入参,待完善

二、通过Apache CSXF方式发布
1、main方式
2、基于Spring发布到容器
3、不基于Spring发布到容器


三、客户端的编写与调用
1、Java通过RPC远程调用方式访问WebService的服务端

2、应用document方式调用

3、用wsdl2java简化客户端的编写
(1)在axis2官网下载axis2-x.x.x-bin.zip,找到bin里面就可以找到wsdl2java.bat
(2)通过cmd到bin目录下运行命令
wsdl2java -uri http://localhost:8080/axis2/services/SimpleService?wsdl -p com.peide.webservice.axis2 -s -o stub
-uri 后面运行的是 需要访问的wsdl, -p 是文件生成的包名 -o stub生成的文件目录,是bin目录下面的
(3)将bin下面的文件复制到-p的包下
(4)通过如图方式进行调用
java中webservice生成/调用方式小结
4、用wsimport生成客户端代码
(1)确认C:\Program Files\Java\jdk1.8.0_144\bin下的wsimport.exe
(2)执行wsimport -keep http://localhost:9001/hello?wsdl,完成无错,刷新str目录
(3)关注Hello.java和HelloService.java
(4)如图,直接调用(调用很简单)
java中webservice生成/调用方式小结
java中webservice生成/调用方式小结


PS.部分内容不完善,待补充。