`
帅得被人看
  • 浏览: 17736 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

我的WebService学习第三课 - wsdl and soap

阅读更多
紧接着上节课,这节课的主要内容有3部分:
1. WSDL的介绍

当我们在server端开启服务之后,在浏览器中输入WSDL的地址,如http://localhost:9999/ns?wsdl,会访问到一个页面,那这个页面是什么呢?
它就是我们发布的服务对外提供的接口描述,总共包含以下5个组成:

<types/>
<message name="add">
<message name="addResponse">
<message name="minus">
<message name="minusResponse">
<portType name="IMyService">--
<binding name="MyServiceImplPortBinding" type="tns:IMyService">
<service name="MyServiceImplService">
每一条都对应具体的格式,这里不过多描述,主要给出它们的功能:
types : 定义访问的类型(数据,方法)
message : 定义发送、接收的soap消息参数
portType : 指明服务器的接口,并通过operation绑定相应的in和out消息,其中in表示参数,out表示返回值
binding : 指定传递消息所使用的格式
service : 指定服务所发布的名称
这里其实我们可以根据自己写的demo对应着看这个页面,会有更好的理解。


2. SOAP的介绍
SOAP : Simple Object Access Protocol,简单对象传输协议
webservice就是通过SOAP消息来传递我们的请求和回复,实现client和server之间的交互。关于SOAP的更多详细介绍,大家可以百度一下,这里我们只要知道它的作用就够了。

可以有很多的方式来查看我们发的SOAP消息到底长什么样子,eclipse也有自带的工具,不错这里介绍一个简单实用的:TCPMon


3. TCPMon的使用
TCPMon的原理很简单,可以参照附件,其实就是一个中间截获的概念。
不过这时候TestClient里的URL端口就要相应的改成TCPMon的监听端口了。
最后,当再一次运行client方法时,我们会有如下的截获的消息:
request
<?xml version="1.0" ?>
   <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
      <S:Body>
         <ns2:add xmlns:ns2="http://service.pintn.www/">
            <a>17</a>
            <b>13</b>
         </ns2:add>
      </S:Body>
   </S:Envelope>

response
<?xml version="1.0" ?>
            <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
               <S:Body>
                  <ns2:addResponse xmlns:ns2="http://service.pintn.www/">
                     <addResult>30</addResult>
                  </ns2:addResponse>
               </S:Body>
            </S:Envelope>
关于如何使用TCPMon,可以参考附件截图。

从这个消息里面, 我们发现为什么输入的参数会变成<a>、<b>,输出的会变成<addResult>呢?
原因是这几个参数也是有方法修改的,同样是要加annotation:
server端
IMyService.java
@WebResult(name="addResult")
public int add(@WebParam(name="a")int a, @WebParam(name="b")int b);

@WebResult(name="minusResult")
public int minus(@WebParam(name="a")int a, @WebParam(name="b")int b);
现在大家明白了吧?

  • 大小: 12.1 KB
  • 大小: 37.8 KB
  • 大小: 29.2 KB
  • 大小: 40.3 KB
分享到:
评论

相关推荐

    webservice(wsdl、soap)实例有demo

    在本实例中,我们将探讨三个关键概念:WSDL(Web Services Description Language)、SOAP(Simple Object Access Protocol)以及如何通过Demo来理解这些概念并实现接口。 **WSDL(Web Services Description ...

    webservice soap wsdl

    "webservice soap wsdl" Web Service 是一种网络接口,为应用程序提供了交互和分布式处理的效果,与平台、开发语言无关。Web Service 的核心是 WSDL(Web Services Description Language),它是一种用于描述 Web ...

    金蝶调用Webservice接口-SOAP

    总结,金蝶通过SOAP调用第三方Webservice接口的过程主要包括:创建服务、创建Dispatch、构造SOAP消息、调用服务并处理响应以及解析响应数据。这个过程展示了不同系统间集成的基本步骤,对于理解和实现类似的集成工作...

    WebService培训(基础-非常适合初学者)

    - **2002年7月**:W3C发布了第一个WSDL 1.2工作草案。 #### WSDL文档结构 WSDL文档主要包括以下几个部分: 1. ****:描述WebService执行的操作,如请求和响应等。 - **种类**:例如,可以定义多种不同类型的操作...

    WebService(WEB服务)--获取网络数据

    这可能涉及到`java.net.HttpURLConnection`或第三方库如Apache HttpClient。 5. **异常处理**: 在与网络交互时,错误处理是非常重要的。程序可能需要处理网络连接问题、超时、无效的响应等异常情况。 具体到`...

    基于CXF的webService本地数据交互----PC端与Android端(三)

    在三部曲的第三部分,我们主要关注的是实际应用和实现。 首先,我们需要理解Web Service的基本概念。Web Service是一种基于互联网的、平台无关的交互方式,通过XML(可扩展标记语言)进行数据交换。CXF使得开发者...

    webservice学习笔记 -- XFrie

    - `lib`: 必要的第三方库。 - `manual`: XFrie的帮助文档。 - `modules`: 根据不同功能编译的二进制包。 - `xfire-all-1.2.6.jar`: 包含所有模块的合并JAR文件。 3. **配置依赖** 将`lib`目录下的所有JAR文件...

    Webservice 调用工具

    3. SOAP消息结构:一个SOAP消息由三部分组成:SOAP Envelope(定义消息结构)、SOAP Header(包含可选的元信息)和SOAP Body(包含实际的数据或请求)。 4. HTTP作为传输协议:SOAP通常利用HTTP协议进行传输,因为...

    用Delphi-实现WebService

    ##### 第三步:实现接口和方法 3. **创建实现类单元**: - 生成一个新的单元文件。 - 定义实现类(继承自 `TInvokableClass` 并实现 `IWebTest` 接口)。 **示例代码**: ```pascal unit Unit2; interface...

    WebService调用第三方服务的案例

    WebService调用第三方服务是软件开发中的常见操作,特别是在构建分布式系统和实现跨平台通信时。本案例主要关注如何使用WebService来实现中英文自动转换的功能,这通常涉及到XML、SOAP(Simple Object Access ...

    ios-webService和soap.zip

    3. **构建SOAP请求**:首先,我们需要理解SOAP消息的结构,并根据服务端提供的WSDL(Web Services Description Language)文档来构建SOAP Envelope。这包括定义SOAPAction、Namespace等关键信息。然后,将这些信息...

    Webservice基础与实践--课程素材包

    7. **测试Web服务**:使用CXF提供的工具或第三方库(如SOAPUI)进行服务测试,确保功能正常。 8. **异常处理和安全性**:理解Web服务中的错误处理和安全措施,如SSL/TLS加密、身份验证和授权。 9. **源代码管理**...

    wsdl-webservice

    "10981662ch4_WSDL.rar"可能是一个关于WSDL的书籍或教程的第四章内容;"39597579wsdl.rar"可能是另一个资源包,专注于WSDL的学习;"430354181CallingWebServicesDynamically.zip"可能包含有关动态调用Web服务(可能...

    springboot-cxf-webservice

    除了基本的创建和调用,CXF还支持WSDL第一类公民、安全性、数据绑定、拦截器等高级特性。你可以根据需求,灵活运用这些功能来增强你的Web服务。 总结,SpringBoot与CXF的结合,使得在Java环境中构建和使用Web服务变...

    06.WSDL深入详解和WebService调用过程的底层本质

    它支持WSDL第一和第二样式,允许开发者从WSDL生成服务实现,或者从Java类生成WSDL。CXF提供了丰富的功能,包括WS-Security、WS-ReliableMessaging等高级Web服务标准的支持,简化了WebService的开发和调用过程。 在...

    Eclipse下WebService学习

    6. **发布和查找服务**:虽然Eclipse没有内置UDDI服务器,但你可以使用第三方UDDI注册中心或模拟器来发布和查找Web Service。 除了基本概念和流程,还需要理解一些关键点: - **数据类型转换**:SOAP消息通常以XML...

    尚硅谷Webservice学习笔记

    - 天气预报数据可能存储在提供服务的公司的数据库中,也可能来自于第三方API,服务端通过HTTP请求获取并处理数据后提供给客户端。 - 股票行情信息通常由证券交易所或其他数据供应商通过API提供,各门户网站通过...

    webservice 第一个小项目

    XML用于数据表示,SOAP是传输数据的协议,WSDL(Web Services Description Language)用于定义服务接口,而UDDI(Universal Description, Discovery and Integration)则是服务的发现和注册机制。 在这个...

Global site tag (gtag.js) - Google Analytics