最近在研究WebService异步调用及WS-Addressing的应用。感觉很困惑。
疑问一:
JAX-WS 2.0提出的WebService编程模型,异步调用有两种方式:轮询(polling)和回调(callback),这个用java实现是没问题的(因为用java编写WebService必定要遵守JAX-WS编程模型),cxf或axis2框架都有示例程序。但如果客户端如果不是java编写的(这样它就不需要遵循JAX-WS),那该怎么办呢?
解决思路:
先抓个包看看吧,看看SOAP消息是怎么写的。
疑问二:
关于WS-Addressing,这个规范(或协议)为WebService提供了类似路由的功能。这个WebService服务端收到带Addressing头的WebService调用后,会把回复消息发往reply-to指定的地址。这样服务端要发起一个调用,怎么调用呢?
解决思路:
根据JAX-WS编程模型提供的WebService调用方式,应该可以采用dispatch的方式调用(之所以说“应该”,是因为还没实践过)——事实上,cxf已经提供了根据reply-to的调用,只需要配置服务端支持WS-Addressing就可以了。但根据WS-Addressing,reply-to只提供了WebService的URL,WS-Addressing定义的域中,并没有一个提供在reply时要请求的Web服务的方法——这样也是没法发起一个对WebService的调用——后来证明这样想就想偏了。因为reply时的节点名是确定的,客户端调用的是hello方法,那么回复时的消息节点名则为:helloResponse。
(未完待续)
几个问题先记录下来:
1、WS-Addressing的提出是为了“传输中立性”(与具体传输协议无关的机制),那http中的post和soapAction起什么作用呢?(可以参考:http://msdn.microsoft.com/zh-cn/library/ms996537.aspx)
2、WS-Addressing中的Action是必须有的项,它的具体作用是什么呢?
3、通过@Action可以指定operation的input和output的soapAction,有什么用处么?
--------------------------------------------------------------
PS:
感觉WebService真是博大精深,实现起来应该也很容易,但是要深入理解,又涉及分布式应用的知识(安全、事务、可靠性之类的),因为要不依赖于具体协议,其中它又提出某方面约定是出于什么什么的考虑,而自己又不是了解那个协议,就有些迷糊了(比如http协议下的SoapAction),又有网络方面的知识(比如原来是WS-Rout,后来改成WS-Addressing,其中就有路由方面的考虑),还有什么穿越防火墙,知识点太多了,让人发困。
分享到:
相关推荐
WS-Addressing
w3c发布地ws-addressing标准,包括endPointReference 和message information header
Laravel开发-laravel-addressing 提供寻址功能的Laravel包
官方版本,亲测可用
PCI-Express-5-Update-Keys-to-Addressing-an-EvolvingSpecification
JAX-WS API,用于Web服务开发 WSDL优先工具 Java优先支持 JAX-RS (JSR 311 1.0) API,用于RESTfulWeb服务开发 JavaScript编程模型,用于客户端和服务端开发 Maven工具 支持CORBA HTTP和JMS传输层 可嵌入的...
Cisco IOS IP Command Reference, Volume 1 of 4 -- Addressing and Services
信息安全_数据安全_AppSecEU2016-Daniel-Kefer-Addressing-S 可信编译 漏洞分析 数据分析 定向攻击 云数据库
WS攻击者 ... WS-Addressing欺骗:请参阅 XML签名包装:请参阅 基于XML的DoS攻击:请参阅 新的自适应和智能拒绝服务攻击(AdIDoS) XML加密攻击:有关攻击和攻击的一般概述,请参见此博客文章( )。进
Rudy's Delphi Corner - Addressing Pointers.pdf
计算机组成与结构:lecture 11 Instruction Sets-Addressing Modes and Formats.pdf
Networkers2009:BRKNMS-1340 - Addressing the Payment Card Industry (PCI) standard version 1.2 with Cisco Solutions
官方版本,亲测可用
composer require galahad/laravel-addressing 基本用法 国家 $ country = Addressing :: country ( 'US' ); echo $ country -> getName (); // "United States" echo $ country -> getCountryCode (); // "US" ...
Autonomous addressing protocols require a distributed and self-managed mechanism to avoid address collisions in a dynamic network with fading channels, frequent partitions, and joining/leaving nodes....
When Safety is Key: Addressing Safety Criticality in Modern Industrial and Transportation Systems
When Safety is Key: Addressing Safety Criticality in Modern Industrial and Transportation Systems
CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and ...
2. Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 ...
Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL...