soap

WebService学习(一)——简介

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-10 18:38:16
一、什么是WebService Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的应用程序。 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。 二、WebService规范 JAVA 有三种WebService 规范,分别是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS JAXM&SAAJ: JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,相当于Web 服务的服务器端。SAAJ(SOAP With Attachment

WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(上篇)

淺唱寂寞╮ 提交于 2020-02-08 09:33:07
[爱心链接: 拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道《天天山海经》为此录制的节目视频(苏州话)] ]消息作为WCF进行通信的唯一媒介,最终需要通过写入传输层进行传递。而对消息进行传输的一个前提或者是一项必不可少的工作是对消息进行相应的编码。WCF提供了一系列可供选择的编码方式,它们分别在互操作和性能各具优势。在本篇文章我们将对各种编码方式进行消息的讨论。 从互操作性的角度来看,编码方法很大程度上决定了跨平台支持的能力。有的编码方式是平台无关的,有的则仅限于某种特定的平台。WCF提供了3种典型的编码方式:Binary、Text和MTOM。Binrary以二进制的方式进行消息的编码,但是仅限于.NET平台之间的通信;Text则提供平台无关的基于文本的编码方式。MTOM编码基于WS-MTOM规范,对于改善大规模二进制数据在SOAP消息的传输性能具有重大的意义,既然该编码方式遵循相应的规范,无疑这也是一种跨平台的编码方式。 在正式介绍WCF消息编码之前,我们很有必要了解如下几个实现编码的核心对象:XmlDictionary、XmlDictionary和XmlDIctionaryWriter。 一、XmlDictionary XmlDictionary,顾名思义,它是一个字典,它是从事编码和解码双方共享的一份“词汇表”。这样的说法可能有点抽象,我们不妨做一个类比。比如我说

How to consume rpc-encoded SOAP Web Service with Java

大憨熊 提交于 2020-02-08 08:10:05
问题 is there a way to consume a SOAP web service with java by just using: the SOAPaction required (for example methodname called "find") the URL of the web service header authentication (username and password) in the end output the results I have an example request xml file by successfully consuming it with php but I can't find a proper way to do it on java. [update: the web service's WSDL style is RPC/encoded] [update #2: you can find how I solved the problem below (by using java stubs generated

Unable to set SOAP Header while calling Web Service through Camel using dataFormat as POJO

岁酱吖の 提交于 2020-02-08 07:38:43
问题 I am using Camel in our project and requesting WebServices, the dataFormat is POJO. I was able to request when my SOAP message did not contain SOAP headers, but when it had Headers, I was unable to set those. I looked at the documentation but was not able to understand and have several questions. I want to create a message like the below: <soapenv:Envelope`enter code here` xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http:/

SOAP与REST API的爱恨情仇

这一生的挚爱 提交于 2020-02-07 20:57:10
之前一直想写些RESTful相关的文章,却一直未付诸行动。直到最近接手一个新的项目,对这块重新温习,乘此机会写些相关帖子。欢迎大家评论留言,如有错漏之处,也望各位大佬不令赐教。 话不多说,干活顶上。 SOAP(Simple Object Access Protocol - 简单对象访问协议) 定义了一种强类型的消息传递框架,该框架高度依赖XML和schemas。 REST(Representation State Transfer - 表示状态转移) 是一种架构样式风格,它利用了当下被广泛采用的技术(特别是HTTP),本身却不创建任何新的标准。REST可以将数据结构序列化为XML,YAML或任何其他机器可读格式,但通常首选JSON。 SOAP和REST都支持构建基于应用程序的SOA(Service-oriented architecture,面向服务的架构),在实际项目中如何选择主要看业务的需求是什么。那如何选择呢? 这便是今天的重点,讨论下两者的主要区别。今天主要从一下几个方面进行区别: 底层协议 SOAP本身便是基于HTTP而发展的协议。 REST与HTTP几乎一样,REST规范没有强制的要求。 数据格式 SOAP只依靠XML来提供消息传递服务。在某些情况下,消息传递服务可能变得极其复杂。例如,通过javascript访问Web服务, REST可以语言自由的选择易解析的数据格式

php自带SOAP扩展调用web service

不羁的心 提交于 2020-02-07 07:09:25
提起php调用web service,在php4年代的人会立即想到用 nusoap调用,这个 nusoap是个好东东,不过年久未更新,恐其中会有众多漏洞了,正好已经进入了php5年代了,调用web service用自带的扩展岂不快哉! 前提:打开php5的web service扩展 环境需求: This extension makes use of the GNOME xml library . Download and install this library. You will need at least libxml-2.5.4. Linux下, This extension is only available if PHP was configured with --enable-soap Windows下: php.ini文件中 extension=php_soap.dll 去掉注释即可 其次:调用实践,以下是俺近期调用的算是一些总结吧 手册摘录: SoapClient->__soapCall() 说明 class SoapClient { mixed __soapCall ( string function_name, array arguments [, array options [, mixed input_headers [, array &output

PHP调用Webservice实例

左心房为你撑大大i 提交于 2020-02-07 06:59:43
原文 PHP调用Webservice实例 NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService。它是一个开源软件,是完全采用PHP语言编写的、通过HTTP收发SOAP消息的一系列PHP类,由NuSphere Corporation( http://dietrich.ganx4.com/nusoap/ )开发。NuSOAP的一个优势是不需要扩展库的支持,这种特性使得NuSoap可以用于所有的PHP环境,不受服务器安全设置的影响。   方法一:直接调用 <? /******************************************************************************/ /* 文件名 : soapclient.php /* 说 明 : WebService接口客户端例程 /******************************************************************************/ include('NuSoap.php'); // 创建一个soapclient对象,参数是server的WSDL $client = new soapclient('http://localhost/Webservices/Service.asmx?WSDL',

序列化和反序列化

我怕爱的太早我们不能终老 提交于 2020-02-06 00:25:59
1, 摘要   序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更加易于调试、便于扩展。本文从多个角度去分析和讲解“序列化和反序列化”,并对比了当前流行的几种序列化协议,期望对读者做序列化选型有所帮助。   简介   文章作者服务于美团推荐与个性化组,该组致力于为美团用户提供每天billion级别的高质量个性化推荐以及排序服务。从Terabyte级别的用户行为数据,到Gigabyte级别的Deal/Poi数据;从对实时性要求毫秒以内的用户实时地理位置数据,到定期后台job数据,推荐与重排序系统需要多种类型的数据服务。推荐与重排序系统客户包括各种内部服务、美团客户端、美团网站。为了提供高质量的数据服务,为了实现与上下游各系统进行良好的对接,序列化和反序列化的选型往往是我们做系统设计的一个重要考虑因素。   本文内容按如下方式组织: 第一部分给出了序列化和反序列化的定义,以及其在通讯协议中所处的位置。 第二部分从使用者的角度探讨了序列化协议的一些特性。

publishing and discovering REST web services

余生长醉 提交于 2020-02-05 09:10:06
问题 I am a student and new to web services. I have an academic project where I have to do dynamic service composition, where the client(coded client, not the human client) will search for web services and out of the searched web services it will choose any one to call at run time. I tried to implement it using SOAP based web services(JAX-WS). But I found on the internet that SOAP based services are not much in use so I tried to implement in on REST. Now my problem is where I should publish the

Trying to build SOAP Request with Savon?

依然范特西╮ 提交于 2020-02-05 04:02:05
问题 I am trying to hit a SOAP Service from Ruby on Rails - from SOAP UI I can hit it fine and the request XML is as below: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:mun="http://schemas.datacontract.org/2004/07/MyExternalService.Map" xmlns:mun1="http://schemas.datacontract.org/2004/07/MyExternalService.Common.Map"> <soapenv:Header/> <soapenv:Body> <tem:GetInformationsForCoordinates> <!--Optional:--> <tem:coordReq> <!--Optional