SOAP:
<官方解释>:简单对象访问协议。我的理解:服务端和客户端传递消息的一种格式。这里面消息(针对方法调用来说),就是入参和返回值。它的最大优势就是用XML表示,所以它可以支持跨语言跨平台。
AXIS:
Apache的一个开源项目。(Apache Extensible Interaction System)Apache可扩展交互系统.它是SOAP的处理机。
环境:tomcat4.1 axis1.2 jdk1.4
例子:
服务端:
package com.pub;
public class BookTest {
public void echo(String str)
{
System.out.println("axis test!!!!"+str);
}
}
客户端:
package com.pub;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class ClientTest {
/**
* @param args
*/
public static void main(String[] args)throws Exception {
// TODO 自动生成方法存根
Service ser =new Service();
Call call = (Call) ser.createCall();
call.setTargetEndpointAddress(new java.net.URL("http://localhost:8085/axistest/services/book"));
call.setOperationName("echo");
String ret = (String) call.invoke(new Object[] {"hehe"});
}
}
部署:
下载最新的axis 将lib和web.xml全部拷贝到测试工程下,同时在web-inf生成server-config.wsdd文件
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="adminPassword" value="admin"/>
<parameter name="attachments.Directory" value="C:/eclipse/workspace/bookstore/WEB-INF/attachments"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="axis.sendMinimizedElements" value="true"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion"/>
<parameter name="className" value="org.apache.axis.Version"/>
</service>
<service name="book" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="com.pub.BookTest"/>
</service>
<service name="AdminService" provider="java:MSG">
<parameter name="allowedMethods" value="AdminService"/>
<parameter name="enableRemoteAdmin" value="false"/>
<parameter name="className" value="org.apache.axis.utils.Admin"/>
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
</transport>
</deployment>