关于WS-Addressing的疑问

本文探讨了JAX-WS2.0中WebService的异步调用方式,包括轮询和回调机制,并对WS-Addressing的作用及其在服务端的实现进行了深入分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在研究WebService异步调用及WS-Addressing的应用。感觉很困惑。
[b]疑问一:[/b]
  JAX-WS 2.0提出的WebService编程模型,异步调用有两种方式:轮询(polling)和回调(callback),这个用java实现是没问题的(因为用java编写WebService必定要遵守JAX-WS编程模型),cxf或axis2框架都有示例程序。但如果客户端如果不是java编写的(这样它就不需要遵循JAX-WS),那该怎么办呢?
[b]解决思路:[/b]
  先抓个包看看吧,看看SOAP消息是怎么写的。
[b]疑问二:[/b]
  关于WS-Addressing,这个规范(或协议)为WebService提供了类似路由的功能。这个WebService服务端收到带Addressing头的WebService调用后,会把回复消息发往reply-to指定的地址。这样服务端要发起一个调用,怎么调用呢?
[b]解决思路:[/b]
  根据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,其中就有路由方面的考虑),还有什么穿越防火墙,知识点太多了,让人发困。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值