最近在研究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 规范解析 #### 一、引言 随着服务导向架构(SOA)的发展,为了提升Web Services的功能性和互操作性,标准化组织(如W3C和OASIS)制定了多种WS-*规范。这些规范旨在增强Web Services在实际应用...
在本文中,我们将深入探讨 Laravel 开发中的一个重要扩展——`laravel-addressing`。这个包专门设计用于在 Laravel 应用程序中提供强大的地址管理功能,它为开发者提供了一个优雅的方式来处理和存储用户的地址信息。...
在本系列的第二部分中,我们将深入探讨如何扩展在第一部分中介绍的JavaScript库,以支持Web服务寻址语言(WS-Addressing)和Web服务资源框架(WS-ResourceFramework)。这两个规范对于构建复杂的分布式系统至关重要...
Cisco IOS IP Command Reference, Volume 1 of 4 -- Addressing and Services
JAX-WS API,用于Web服务开发 WSDL优先工具 Java优先支持 JAX-RS (JSR 311 1.0) API,用于RESTfulWeb服务开发 JavaScript编程模型,用于客户端和服务端开发 Maven工具 支持CORBA HTTP和JMS传输层 可嵌入的...
WS攻击者 ... WS-Addressing欺骗:请参阅 XML签名包装:请参阅 基于XML的DoS攻击:请参阅 新的自适应和智能拒绝服务攻击(AdIDoS) XML加密攻击:有关攻击和攻击的一般概述,请参见此博客文章( )。进
信息安全_数据安全_AppSecEU2016-Daniel-Kefer-Addressing-S 可信编译 漏洞分析 数据分析 定向攻击 云数据库
- **WS-Addressing – SOAP Binding**: 规定了如何将WS-Addressing信息嵌入到SOAP消息中。 #### 三、元数据规格 元数据规格定义了如何描述服务的特性及其交互方式。 - **WS-Policy**: 一种用于表达服务策略的框架...
- **WS-Addressing**:支持 WS-Addressing 标准,提高消息的可靠性。 - **EndpointInterceptor**:拦截请求和响应,进行额外的处理或验证。 综上所述,Spring Web Services 是一个功能强大且灵活的框架,它简化了 ...
Spring Web Services(简称 Spring-WS)是基于 Java 的轻量级框架,旨在简化 Web 服务的创建和使用过程。它利用了 Spring 框架的核心功能,如依赖注入和面向切面编程等特性,并且支持多种消息传输方式,如 SOAP、...
标题中的“XEP100 - EEEPROM - Addressing - CW46_continuedy91_MC9S12XEP100_源”暗示了我们正在讨论一个与微控制器编程相关的主题,特别是关于MC9S12XEP100型号的微控制器以及其EEPROM(电可擦可编程只读存储器)...
官方版本,亲测可用
官方版本,亲测可用
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....
PCI Express(PCIe)5.0是下一代高速接口标准,为数据传输提供了更高的带宽和更低的延迟。本文将深入探讨PCIe 5.0的关键技术改进,包括规范状态、通道损失、参考时钟抖动测量以及通道解决方案空间。...
**标题**:“Networkers2009:BRKNMS-1340 - Addressing the Payment Card Industry (PCI) standard version 1.2 with Cisco Solutions” **描述**:此标题明确指出该文档是关于如何利用思科解决方案来应对支付卡...
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 ...
本资源“西门子PLC例程-Addressing Examples and Basics.zip”聚焦于S7系列PLC的数组和间接寻址技术,这对于理解和编程这类控制器至关重要。 一、数组寻址(S7 Array) 在西门子PLC编程中,数组是一种存储相同数据...