Axis1 Soap服务的架设
1.用java写接口
2.使用Java 2 wsdl生成wsdl文件
把接口和接口中所有用到的所有的类的字节码放到该目录下(自己建目录com/..)
双击bat就会产生wsdl。
3.使用wsdl 2 java生成Soap服务代码
生成的wsdl的参数名称是自动生成的,而不是在java接口中自己定义的参数名称。需要手动修改wsdl。
最后把wsdl放到wsdl2java目录下。
此时生成的全部是java类和deploy.wsdd等
需要把这些东西全部拷贝的Eclipse中变成字节码
4.在tomcate的webapps下建立一个web服务。
WEB-INF、web.xml、classes中包含生成的字节码。把deploy.wsdd,undeploy.wsdd也放到相应(com/..)的目录下
其中web.xml必须按顺序包括以下东西
<listener>
<listener-class>
org.apache.axis.transport.http.AxisHTTPSessionListener
</listener-class>
</listener>
<!-- webService服务servlet begin -->
<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<display-name>Axis Admin Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
<session-config>
<!-- Default to 5 minute session timeouts -->
<session-timeout>5</session-timeout>
</session-config>
<mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<welcome-file-list>
<welcome-file>services</welcome-file>
</welcome-file-list>
<!-- webService服务servlet end -->
5.deploy soap服务
把生成的deploy.wsdd放到deploy目录下
首先保证在tomcate下建立一个web服务是开启的。
deploy.bat后。把deploy.wsdd重新替换到相应(com/..)的目录下(可以不做)
可以看到执行之后,会在WEB-INF下自动产生一个文件server-config.wsdd
6.撤消部署。
把生成的undeploy.wsdd放到unDeploy目录下。执行之后就可撤消。
Axis2 Soap服务的架设
Axis2要求JDK为1.5以上
1. 架设Axis2的服务开发环境
Axis2SoapServer目录下是axis的服务端。
如果不设置axis2的环境变量就可以直接在Axis2SoapServer\axis2-1.1.1\bin
使用.bat文件生成wsdl或java类.
设置axis2的环境变量
AXIS2_HOME = axis2的根目录
Path = %AXIS2_HOME%\bin(这个放到jdk的后面)
配置成功后可以在任意目录执行java2wsdl等命令,否则只能到axis2的bin目录下执行。
2.写一个接口类。
3.如果没有设置axis2的环境变量怎需要把写的接口类的的字节码放到axis2服务 的bin目录下. 注意字节码必须按照包路径建立目录。com/soap/axis2/test/字节码
4.使用java2wsdl生成wsdl文件
5.生成wsdl后,需要生成客户端代码和服务端代码。
生成客户端代码命令为 生成客户端代码到client目录下
wsdl2java -uri SoapServiecTest.wsdl -o ./client
生成服务端代码命令为 生成服务端代码到server目录下
wsdl2java -ss -sd -ssi -uri SoapServiecTest.wsdl -o ./server
客户端接口的实现类是Stub命名的
服务端接口的实现类是Skeleton命名的
在生成服务端代码的时候,会生成一个resources目录,里面有2个文件
services.xml、SoapService.wsdl文件。需要把这2个文件放到META_INF目录下打成一个*.arr文件。作为部署文件。
命令如下:
jar -cvf SoapTest.aar ./META_INF
6.把服务端代码拷贝的web服务器
7.部署(与Axis1差距比较大),Axis1要求部署的时候web服务一定要是启动的。而axis2不做这个要求
需要把部署必需文件目录下的所有文件拷贝的WEB-INF下。这写目录名称modules、services目录是可以修改的。在conf目录下的axis2.xml文件中修改。
把*.arr文件拷贝到services目录下(该目录下放的是所有提供的web服务)。
然后修改services目录下的services.list文件(服务列表程序)。
在里面增加要部署的aar就可以了。没个arr文件名称为一行。
8.配置修改
可以在axis2.xml文件中修改soap服务的响应时间 ConfigContextTimeoutInterval.
9.启动web服务。此时axis2的web服务已经启动。
10.使用客户端程序调用服务端