axis1 与axis2差异很大,axis2比axis1要简单, 但在实际开发中使用axis1情况比较多。
下载 axis1.4包 , 将jar包和web.xml添加项目中
1.由wsdl文件生成服务端文件和deploy.wsdd文件(将wsdl和生成deploy.wsdd文件放到WEB-INF中, 新建bat文件也放到这里执行):
注意:bat文件中 :: 表示注释代码 , pause>nul 表示 点击确定退出cmd窗口
set AXIS_HOME=E:\axis-1.4-src\webapps\axis\WEB-INF
set CLASSPATH=,;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar;%AXIS_HOME%\lib\mail.jar;
set Java_Cmd=java -Djava.ext.dirs=%AXIS_HOME% org.apache.axis.wsdl.WSDL2Java
set Output_Path=E:\axis-1.4-src\webapps\axis\WEB-INF\out
%Java_Cmd% -o%Output_Path% --server-side Vaaa.wsdl
pause>nul
2.由wsdl文件生成客户端:
set AXIS_HOME=E:\axis-1.4-src\webapps\axis\WEB-INF
set CLASSPATH=,;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar;%AXIS_HOME%\lib\mail.jar;
::java org.apache.axis.wsdl.WSDL2Java -p com.bj.cilent bj.wsdl -o Client -d Session -S true
java org.apache.axis.wsdl.WSDL2Java -p com.bj.cilent http://192.168.252.1:9001/WWS/services/BJ_Service?wsdl
3.运行weblogic 由deploy.wsdd生成 server-config.wsdd 发布文件
set AXIS_HOME=E:\axis-1.4-src\webapps\axis\WEB-INF
set CLASSPATH=,;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar;%AXIS_HOME%\lib\mail.jar;
set Java_Cmd=java -Djava.ext.dirs=%AXIS_HOME% org.apache.axis.client.AdminClient
%Java_Cmd% -lhttp://192.168.252.1:9001/bjca/services/AxisServlet deploy.wsdd
pause>nul
wsdl也就是双方约定webservice描述文件, 下面是由第一步生成的文件。
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="SyncSP" provider="java:RPC" style="rpc" use="encoded">
<parameter name="wsdlTargetNamespace" value="http://soap.bossagent.vac.icom.com"/>
<parameter name="wsdlServiceElement" value="SyncSPServiceService"/>
<parameter name="schemaUnqualified" value="http://rsp.sync.soap.bossagent.vac.icom.com,http://req.sync.soap.bossagent.ac.icom.com"/>
<parameter name="wsdlServicePort" value="SyncSP"/
<parameter name="className" value="com.icom.ac.bossagent.soap.SyncSPSoapBindingImpl"/>
<parameter name="wsdlPortType" value="SyncSPService"/>
<parameter name="typeMappingVersion" value="1.2"/>
<operation name="orderRelationUpdateNotify" qname="operNS:orderRelationUpdateNotify" xmlns:operNS="http://soap.bossagent.ac.icom.com" returnQName="orderRelationUpdateNotifyReturn" returnType="rtns:OrderRelationUpdateNotifyResponse" xmlns:rtns="http://rsp.sync.soap.bossagent.ac.icom.com" >
<parameter qname="orderRelationUpdateNotifyRequest" type="tns:OrderRelationUpdateNotifyRequest" xmlns:tns="http://req.sync.soap.bossagent.ac.icom.com"/>
</operation>
<parameter name="allowedMethods" value="orderRelationUpdateNotify"/>
<typeMapping
xmlns:ns="http://rsp.sync.soap.bossagent.ac.icom.com"
qname="ns:OrderRelationUpdateNotifyResponse"
type="java:com.icom.ac.bossagent.soap.sync.rsp.OrderRelationUpdateNotifyResponse"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
<typeMapping
xmlns:ns="http://req.sync.soap.bossagent.ac.icom.com"
qname="ns:OrderRelationUpdateNotifyRequest"
type="java:com.icom.ac.bossagent.soap.sync.req.OrderRelationUpdateNotifyRequest"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
</service>
</deployment>
4.新建服务类, 和deploy.wsdd 文件 ,然后生成 server-config.wsdd文件,deploy.wsdd 文件,不用像上面生成那样复杂。
文件deploy.wsdd
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="Capacity" provider="java:RPC">
<parameter name="className" value="samples.capacity.Capacity"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>