`
Tristan_S
  • 浏览: 383531 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

webservice

 
阅读更多
SOAP vs Rest
SOAP 就是传统的webservice, 定义一个wsdl,(或由服务器端代码生成一个wsdl),客户端那到这个wsdl用工具(cxf)就能生成自己的客户端接口一系列代码。 之间传输的内容需要符合wsdl中的schema校验。

Rest 是用url来表明自己要传输的内容,
http://localhost:9000/categoryservice/category/001/books
其格式需要符合
@Path("/category/{id}/books") 的定义
这个和springMVC中的@RequestMapping("/update")很像

两者的对比
soap需要用工具生产一大堆的stub skelton文件 重量级
rest很简洁 轻量级, 不需要额外代码, 而且传输的内容不需要额外的格式

soap 跨系统做的好,只要基于wsdl就ok, 适用于.Net和Java的通讯
rest 我不知道跨语言是怎么用的

一般而言一个提供webservice服务的系统都会提供这两种类型的api, 所以对于使用者是透明的。


------------------------------

types:用来定义访问的类型
message:SOAP
portType:指明服务器的接口,并且通过operation绑定相应的in和out的消息:其中in表示参数,out表示返回值
binding:指定传递消息所使用的格式
service:指定服务所发布的名称




以上是两种对WSDL的说明
如果用自己的话来讲就是
types 定义的是schema文件或是其内容
message 就是对需要哪些schema中的对象作为SOAP对象的
portType 定义了接口名字和需要发布哪些方法, 该方法的input和output参数是message中定义的类型
binding和service 规定了发布的url地址等信息。属于physical locations, 不需要我们care

Restful可以参照 http://reymont.iteye.com/blog/1523822
附件中是soap实现 和 restful的实现
对于restful实现有两个问题
1, 客户端的PO类即Category, Book 如何生成? 通过浏览器看到的xml? http://localhost:9000/categoryservice/category/001/books
2, 有没有第三方的工具类似于xmlspy的来作为工具,测试restful的?
需要指定访问方法post get delete等 SOAPUI?
firefox带有restClient的插件可以用来测试



--
用soapUI测试restful, 可以设置http的method(get post delete等),但是无法模拟对象的实体类, 比如需要新增一个实体类时需要传递一个PO的对象,而在soapUI中无法构造出。
-- 该对象有json格式模拟, 而json格式的说明需要由提供rest的服务端提供
-- 可以通过get方法来得到json格式, 修改后再发送。 firefox 插件支持
见附件 email.rar

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="HelloWorldImplService" targetNamespace="http://tristan01.com/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://tristan01.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <wsdl:types>
<xs:schema elementFormDefault="unqualified" targetNamespace="http://tristan01.com/" version="1.0" xmlns:tns="http://tristan01.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="add" type="tns:add"/>
<xs:element name="addResponse" type="tns:addResponse"/>
<xs:complexType name="add">
<xs:sequence>
<xs:element name="arg0" type="xs:int"/>
<xs:element name="arg1" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="addResponse">
<xs:sequence>
<xs:element name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
  </wsdl:types>
  <wsdl:message name="addResponse">
    <wsdl:part element="tns:addResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="add">
    <wsdl:part element="tns:add" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="HelloWorld">
    <wsdl:operation name="add">
      <wsdl:input message="tns:add" name="add">
    </wsdl:input>
      <wsdl:output message="tns:addResponse" name="addResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="HelloWorldImplServiceSoapBinding" type="tns:HelloWorld">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="add">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="add">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="addResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="HelloWorldImplService">
    <wsdl:port binding="tns:HelloWorldImplServiceSoapBinding" name="HelloWorldImplPort">
      <soap:address location="http://localhost:8888/ns"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
  • 大小: 54.1 KB
  • 大小: 68.7 KB
分享到:
评论

相关推荐

    Android通过webservice连接Sqlserver实例

    这个场景通常是通过Web服务,如WebService来实现。本文将详细介绍如何在Android应用中利用WebService接口连接到SQLServer数据库,实现数据的增删改查操作。 首先,理解概念: 1. Android:Android是一种开源操作...

    webservice测试调用工具WebserviceStudio20

    WebserviceStudio是一款强大的Web服务测试和调用工具,版本为20。这款工具主要帮助开发者和测试人员方便地测试和调试他们的Web服务。以下是WebserviceStudio的一些核心功能和相关知识点: 1. **图形化界面**:...

    C#调用JavaWebService

    调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...

    SqlServer触发器调用WebService

    ### SqlServer触发器调用WebService知识点详解 #### 一、SqlServer触发器简介 在了解如何通过Sql Server触发器调用WebService之前,我们首先需要对触发器有一个基本的认识。触发器是一种特殊的存储过程,它被定义...

    c++调用webservice(包括静态和动态以及webservice源码)

    然而,由于其自身不直接支持Web服务(WebService)的调用,开发者通常需要借助第三方库或者特定的技术来实现。本篇文章将详细讲解如何在C++中调用WebService,包括静态和动态方式,并探讨相关的源码实现。 首先,让...

    Idea实现WebService实例

    【标题】:Idea实现WebService实例 在Java开发中,WebService是一种常见的跨平台、跨语言的通信方式,它允许不同的应用程序之间交换数据。IntelliJ IDEA(简称Idea)是广受欢迎的Java集成开发环境,提供了强大的...

    一个简单的WEBSERVICE 例子

    根据提供的文件信息,本文将详细解释一个简单的 WebService 示例,并深入探讨其中的关键概念和技术细节。 ### 一、WebService 概念 #### 1.1 WebService 定义 WebService 是一种支持通过网络进行调用的服务形式,...

    WebService的优势与劣势

    ### WebService的优势与劣势 #### 一、WebService概述 WebService是一种平台独立的、分布式的、基于互联网的应用程序接口(API),它使用标准的Internet协议(如HTTP)进行通信,并使用XML来交换数据。WebService...

    webservice获取List案例

    在本案例中,我们关注的是一个特定的Web服务类型——WebService,它用于获取一个包含泛型对象的List。这个场景在分布式系统、微服务架构或者跨平台数据共享中非常常见。让我们深入探讨一下相关的知识点。 1. **...

    WebService依赖jar以及xml.zip

    WebService是一种基于XML(可扩展标记语言)的互联网通信标准,它允许不同的应用程序之间进行互操作。这个名为"WebService依赖jar以及xml.zip"的压缩包文件包含了一组用于构建和运行WebService所需的重要组件。 ...

    在WinForm程序中调用WebService

    在WinForm应用程序中调用WebService是一项常见的任务,它允许客户端应用程序与远程服务器上的服务进行交互,从而实现数据交换和功能扩展。以下是如何在WinForm中实现这一操作的详细步骤及涉及的相关知识点: 1. **...

    VC++中WebService服务的调用

    在VC++中调用WebService服务是一项常见的任务,尤其在跨平台通信、系统集成或扩展应用程序功能时。WebService是一种基于Web的、松耦合的服务,它使用标准的HTTP协议进行通信,并通过XML(eXtensible Markup Language...

    SAP webservice测试方法

    ### SAP Webservice 测试方法详解 #### 一、引言 在现代企业信息化管理中,SAP系统作为企业管理软件中的佼佼者,被广泛应用。随着SAP系统的不断升级与扩展,Webservice技术作为一种重要的集成手段,在SAP系统中...

    C# WebService 客户端 服务器 Json

    本主题聚焦于C#中的WebService客户端和服务器的交互,以及如何利用Json进行数据交换。Json(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性和易于编写而被广泛应用。 一、C# WebService简介 ...

    动态调取webservice返回json数据并处理

    这里我们关注的是动态调用WebService并处理返回的JSON数据,然后将这些数据展示在GridView中。这个过程涉及到的技术主要包括:WebService的调用、JSON数据解析以及数据绑定到GridView。 首先,让我们来理解...

    BCB 调用WebService方法及常见问题排查

    ### BCB调用WebService方法详解及常见问题排查 #### 一、引言 在现代软件开发中,跨平台服务通信已成为一种常态。其中,WebService作为一种常见的远程服务调用方式,在不同语言之间进行交互时扮演着重要的角色。...

    WebServiceStudio C#源码

    WebServiceStudio是一款基于C#开发的轻量级工具,主要用于测试和调试Web服务接口。这个工具的源码提供了深入理解Web服务交互机制的机会,对于学习和开发相关应用具有很高的价值。以下将详细介绍其中涉及的主要知识点...

    java调用json参数的webservice

    在探讨Java调用带有JSON参数的WebService之前,我们首先需要了解几个关键的技术概念:Java、JSON以及WebService。 Java是一种广泛使用的编程语言,它具有面向对象、跨平台、多线程以及健壮性等特点。Java在企业级...

    C#webservice调用测试工具

    【标题】:“C# WebService调用测试工具” 在IT领域,Web Service是一种基于网络的、松散耦合的软件组件,它允许不同系统之间的数据交换。C# WebService调用测试工具是专为开发者设计的,用于测试和调试Web Service...

Global site tag (gtag.js) - Google Analytics