残酷の青春

journey continues

Simple SOAP example

首先需要安装soap包soap还需要javamail和javabeans activation framework,分别在以下地址下载http://apache.linuxforum.net/dist/ws/soap/http://java.sun.com/products/javamail/downloads/index.htmlhttp://java.sun.com/products/javabeans/glasgow/jaf.html把以上soap包中的soap.war放入到{$tomcathome}/webapps目录下,soap.war自动deploy,把mail.jar和activation.jar放到系统的classpath和tomcat的lib中,访问http://localhost:8080/soap/servlet/rpcrouter没有报错则成功
创建Echo.java代码如下public class  Echo{ public String echo(String echome){  return echome; }}
同一目录下创建DeployDescriptor.xml代码如下<isd:service xmlns:isd=”http://xml.apache.org/xml-soap/deployment” id=”urn:Echo”> <isd:provider type=”java” scope=”Application” methods=”echo”>  <isd:java class=”Echo” static=”false”/> </isd:provider></isd:service>
Deploy SOAP服务命令行执行>java org.apache.soap.server.ServiceManagerClient http://localhost:8080/soap/servlet/rpcrouter deploy DeploymentDescriptor.xml
检查服务是否安装>java org.apache.soap.server.ServiceManagerClient http://localhost:8080/soap/servlet/rpcrouter list
然后把编译过的Echo.java放置到{$tomcathome}/webapps/soap/WEB-INF/classes目录下
创建SOAP客户端程序代码如下import java.io.*;import java.util.*;import java.net.*;import org.w3c.dom.*;import org.apache.soap.util.xml.*;import org.apache.soap.*;import org.apache.soap.encoding.*;import org.apache.soap.encoding.soapenc.*;import org.apache.soap.rpc.*;
public class TestEchoService {  public static void main(String[] args) throws Exception{    Call call = new Call();
    call.setTargetObjectURI(”urn:Echo”);    call.setMethodName(”echo”);    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
    Vector params = new [...]