`

soap 的使用

    博客分类:
  • Java
阅读更多
 首先,我们要创建一个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
分享到:
评论

相关推荐

    soap使用说明

    ### SOAP使用说明与SoapUI基础入门详解 #### 一、SOAP与SoapUI概述 SOAP (Simple Object Access Protocol) 是一种轻量级协议,用于在分布式环境中交换数据。它基于XML,能够通过多种传输协议(如HTTP)进行消息...

    Qt下实现WebServer的调用之qtsoap

    2. **创建SOAP请求**:使用`qtsoap::SoapRequest`类创建一个SOAP请求。你需要提供SOAP消息的XML格式,包括方法名、参数等。例如: ```cpp qtsoap::SoapRequest request("http://example.com/service", "MethodName...

    C#通过SOAP使用HttpWebRequest调用带有身份验证的WebService示例

    本示例使用C#构造SOAP信息,通过HttpWebRequest调用java编写的带有Windows身份验证的WebService,代码中详细注释了每行代码的功能与作用; 对应文章:http://blog.csdn.net/cgs_______/article/details/77894599

    SOAP-MTOM_Canon.pdf

    SOAP Binding Framework 是一种规则集合,用于定义如何使用协议来传输 SOAP 消息。不同的绑定框架可以将 SOAP 消息传输到不同的协议上,如 HTTP、SMTP 等。 MTOM(Message Transmission Optimization Mechanism)是...

    SOAP协议规范 中文的

    此外,SOAP使用XML命名空间来区分SOAP特定的元素和应用程序特定的元素。例如,"SOAP-ENV"与"http://schemas.xmlsoap.org/soap/envelope/"关联,用于表示SOAP消息的环境,而"SOAP-ENC"与...

    利用QtSoap访问WebService

    5. **命名空间处理**: SOAP消息通常涉及多个命名空间,QtSoap使用`QtSoapQName`来处理这些命名空间。在创建`QtSoapType`或设置方法名时,需要指定正确的命名空间。 6. **类型映射**: QtSoap支持基本的数据类型映射...

    soap白皮书 TXT格式

    为了确保消息的可读性和避免命名冲突,SOAP使用命名空间和前缀来标识不同的元素和属性。例如,“env”前缀对应于SOAP Envelope的命名空间,而“n”则用于“alertcontrol”的命名空间。这些前缀和对应的命名空间URI...

    浅谈SOAP.pdf

    - **XML**:SOAP使用XML作为消息的编码格式,这不仅便于解析,也利于跨平台和跨语言的通信。 这种组合使得SOAP成为一种高效、灵活且易于实现的通信协议,适用于Web服务领域。 #### 五、SOAP的前景 尽管近年来出现...

    SOAP 经典教程

    5. **绕过防火墙**:由于SOAP使用HTTP协议进行传输,因此可以轻松地穿过大多数防火墙。 6. **使用HTTP**:SOAP利用HTTP作为传输层协议,这使得它可以在任何支持HTTP的地方使用。 #### 三、为何选择SOAP? - **解决...

    qtsoap源代码

    8. **示例与文档**:虽然源代码本身提供了很多信息,但为了更好地使用 QtSOAP,开发者通常还需要参考官方文档或社区提供的示例代码,以便快速上手。 总之,QtSOAP 是一个强大的工具,让 Qt 开发者能够轻松地在他们...

    soap协议规范

    同时,SOAP使用了一系列的名域前缀来关联特定的URI,例如“SOAP-ENV”与SOAP信封相关的URI关联,“SOAP-ENC”与编码规则关联,“xsi”与XSD实例规范关联,“xsd”与XSD规范关联。这些前缀有助于区分和组织XML文档中...

    SOAP学习手册-豆丁网上花币下载的

    SOAP使用XML作为其消息格式的基础,这使得它具有高度的可读性和跨平台性。 #### 二、SOAP的组成部分 SOAP主要由以下四个部分组成: 1. **SOAP信封**:它定义了消息的基本结构,包括消息的头部和体部,以及消息的...

    简单对象访问协议(SOAP)初级指南

    SOAP使用XML来编码RPC调用,将请求封装成XML文档,通过HTTP进行传输。这样,任何支持HTTP和XML解析的系统都能够理解和处理SOAP消息,降低了互操作的门槛。 SOAP的编码规则规定了消息结构,包括XML命名空间、SOAP头...

    SOAP to REST_library_

    1. **消息格式**:SOAP使用XML作为消息格式,而REST通常通过HTTP协议使用JSON或XML。 2. **调用方式**:SOAP是基于远程过程调用(RPC)模型,而REST是资源导向的,通过HTTP方法(GET, POST, PUT, DELETE等)操作资源...

    thinkphp下使用soap

    thinkphp内使用soap 把下载的soap解压放到ThinkPHP\Extend\Vendor目录下 名字是soap 调用方法: function test($url,$method,$data){ vendor('soap.class#nusoap'); //从soap目录导class.nusoap.php类文件 $...

    soap1.1和soap1.2区别

    SOAP 1.1 使用 "text/xml" 作为 Content-Type,而 SOAP 1.2 使用 "application/soap+xml"。这意味着 SOAP 1.2 的报头信息更为明确和详细,表明了请求体中的 XML 内容是 SOAP 消息。 其次,SOAP 1.2 不再使用 SOAP...

    Node.js-NSOAP是用于Express的路由器(router)

    7. **调试与测试**: 在开发过程中,使用 Node.js 的调试工具和 SOAP 客户端(如 SoapUI)可以帮助你测试和调试 NSOAP 服务。 8. **文档生成**: 创建清晰的 SOAP WSDL(Web Service Definition Language)文档对于...

    使用Visual C开发SOAP客户端应用.doc

    SOAP使用XML作为数据格式,因此还需要导入`msxml3.dll`来处理XML内容。此库提供了强大的XML解析功能,使得开发者可以轻松地操作SOAP消息中的XML数据。 #### 四、开发SOAP客户端应用程序 开发一个SOAP客户端应用程序...

    Programming Web Services with SOAP

    - **Perl 中的 SOAP Web 服务:** 使用 Perl 创建 SOAP Web 服务时,可以利用 SOAP::Lite 模块来简化开发过程。 - **Java 中的 SOAP Web 服务:** 在 Java 中,Apache SOAP 工具包提供了强大的功能,可以帮助开发者...

Global site tag (gtag.js) - Google Analytics