soap 的使用

 首先,我们要创建一个SOAP Service。下面是它的代码,请不要忘记将它放入HelloWorld/ 目录中(必须被包含在你的CLASSPATH中):
  
  1: // SOAPService.java
  2: package HelloWorld;
  3: public class SOAPService {
  4: public String sayHi(String x) {
  5: return("Hello my friend, " + x + "! Glad to see you!");
  6: }
  7: }
  
  添加任何注释也是很轻易的。要编译它,只需要用下列命令:
  
  javac SOAPService.java
  
  第二步,一旦我们预备好了SOAP Service,我们需要用SOAP Service Manager来部署它。这个可以通过很多方式来实现,但是为了能让初学SOAP的读者更轻易理解SOAP,我提供了一个最轻易的方式。我们假设你的Web Server(Tomcat或其他)已经正常运行,并且你已经正确安装了SOAP。那么当浏览器访问http://localhost:8080/soap/,你会看见Apache SOAP的欢迎页面。点击Run the admin client ,然后 Deploy。你会得到一个屏幕显示,在那里你需要填入ID,Scope,Method,Provider Type和JAVA Provider的信息到表单域中。你能忽略其他所有的表单域,除非你真的需要它们的信息。我们的“HelloWorld”例子不需要它们,所以,我们填的下面的值:
  
  ID: urn:HelloWorld_SOAPService
  Scope: Application
  Methods: sayHi
  Provider Type: java
  Java Provider - Provider Class: HelloWorld.SOAPService
  Java Provider - Static? No
  
  一些注释:ID是我们要从SOAP Client标识我们的SOAP Service的唯一名字。Method包含SOAP Service提供的一系列方法。JAVA Provider-Provider Class是SOAP Service Java类的名字。
  
  现在,点击Deploy 按钮,那么你的服务会被部署。再次强调,请注重正确设置CLASSPATH环境变量。然后,你的HelloWorld.SOAPService类能够被找到,并且所有必需的jar包也能被找到。这是个几乎每个人都会犯的普通错误。现在,你能够点击 List ,将会看见你的服务已经被部署进来。恭喜!
  
  最后,让我们来创建一个SOAP Client。代码看起来有点复杂,但是在现实中不会只有这么点长。
  
  1: // HelloWorldClient.java
  2: import java.io.*;
  3: import java.net.*;
  4: import java.util.*;
  5: import org.apache.soap.*;
  6: import org.apache.soap.rpc.*;
  7: public class HelloWorldClient {
  8: public static void main(String[] arg) throws Exception {
  9: Call c = null;
  10: URL url = null;
  11: Vector params = null;
  12: Response rep = null;
  13: String ourName = "Superman";
  14: String ourUrn = "urn:HelloWorld_SOAPService";
  15: String ourMethod = "sayHi";
  16: url = new URL("http://localhost:8080/soap/servlet/
  rpcrouter");
  17: System.out.println("Passing to our deployed "+ourUrn+"
  our name ("+ourName+"): ");
  18: c = new Call();
  19: c.setTargetObjectURI(ourUrn);
  20: c.setMethodName(ourMethod);
  21: c.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
  22: params = new Vector();
  23: params.addElement(new Parameter("ourName", String.class,
  ourName, null));
  24: c.setParams(params);
  25: System.out.print("and its answer is: ");
  26: rep = c.invoke(url, "");
  27: if (rep.generatedFault()) {
  28: Fault fault = rep.getFault();
  29: System.out.println(" Call failed!");
  30: System.out.printl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值