webservice——SOAP简单开发

首先下载soap,把soap.war放到tomcat/webapp/目录下,在classpath下面加入soap.jar、mail.jar和 activation.jar,然后创建一个Service和Client,把Service.class放到 tomcat/webapp/soap/WEB-INF/classes目录下,然后把mail.jar和activation.jar放到 tomcat/webapp/soap/WEB-INF/lib下面,并写一个配置文件用于部署服务。

 
  1. <isd:service  
  2.    xmlns:isd="http://xml.apache.org/xml-soap/deployment"  
  3.    id="urn:service" checkMustUnderstands="true">  
  4.       <isd:provider type="java" scope="Request" methods="setAlarm">  
  5.       <isd:java class="work.Service" static="false"/>  
  6.    </isd:provider>  
  7. </isd:service>  


上面的work.Service是类的全名,setAlarm是提供的服务名,urn:service是URI。再写一个脚本来调用配置文件部署服务

java org.apache.soap.server.ServiceManagerClient
http://localhost:8080/soap/servlet/rpcrouter deploy deploy.xml

启动Tomcat之后,启动脚本,然后执行Client代码就可以了,Client的主体代码很简单,代码里面就不加入注释了。
  
 
  1. Call call = new Call ();  
  2.     call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);  
  3.     call.setTargetObjectURI ("urn:service");  
  4.     call.setMethodName ("setAlarm");  
  5.     Parameter param = new Parameter("alarm", String.class, alarm,
  6.                 Constants.NS_URI_SOAP_ENC);  
  7.     Vector paramList = new Vector();  
  8.     paramList.addElement(param);  
  9.     call.setParams (paramList);  
  10.     URL url = new URL ("http://localhost:8080/soap/servlet/rpcrouter");  
  11.     Response resp = call.invoke (url, "");  
  12.     if (!resp.generatedFault()) {  
  13.       // Extract Return value  
  14.       Parameter result = resp.getReturnValue ();  
  15.       String greeting = (String) result.getValue();  
  16.       return greeting;  
  17.     }  
  18.     else {  
  19.       //  Extract Fault Code and String  
  20.       Fault f = resp.getFault();  
  21.       String faultCode = f.getFaultCode();  
  22.       String faultString = f.getFaultString();  
  23.       System.err.println("Fault Occurred (details follow):");  
  24.       System.err.println("Fault Code:  "+faultCode);  
  25.       System.err.println("Fault String:  "+faultString);  
  26.       return new String ("Fault Occurred.  No greeting for you!");  
  27.     }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值