【发布时间】:2013-03-20 07:27:37
【问题描述】:
我只是对 ws-addressing 感到困惑。
维基百科称它是一种传输中立机制的规范,允许 Web 服务“传递寻址信息”。
传达寻址信息?难道 SOAP Web 服务一开始就没有这种能力,否则它们怎么能通信?
鉴于它似乎提供了核心功能,它提供了什么价值,为什么不作为默认内容的一部分?
【问题讨论】:
标签: java web-services soap jax-ws ws-addressing
我只是对 ws-addressing 感到困惑。
维基百科称它是一种传输中立机制的规范,允许 Web 服务“传递寻址信息”。
传达寻址信息?难道 SOAP Web 服务一开始就没有这种能力,否则它们怎么能通信?
鉴于它似乎提供了核心功能,它提供了什么价值,为什么不作为默认内容的一部分?
【问题讨论】:
标签: java web-services soap jax-ws ws-addressing
WS-Addressing 在异步通过不同协议进行通信的上下文中最有用。它用于标记消息,以便稍后可以相互协调请求和延迟响应,而不管它是通过哪个协议发送的。
如果您一直使用 HTTP,则不需要 WS-Addressing,这就是它默认关闭的原因。但是,我们倾向于假设 SOAP 只能通过 HTTP 传输,而实际上它可以通过其他方式传输,例如 SMTP 或 JMS。他是一个说明问题的例证。
使用 WS-Addressing,特定于传输的数据被复制到 SOAP 标头。这将 地址 数据从协议中解耦到 SOAP 消息本身,实现了维基百科所说的“传输中立性”。
WS-Addressing 在 WS* 规范组(即 WS-Security、WS-ReliableMessaging、WS-Coordination)中扮演着重要角色。
【讨论】:
根据WS-Addressing specification by W3C organization:
/wsa:消息ID
此 OPTIONAL 元素(类型为 xs:anyURI)传达 [message id] 属性。如果存在 wsa:ReplyTo 或 wsa:FaultTo,则必须存在此元素。/wsa:ReplyTo
此 OPTIONAL 元素(类型为 wsa:EndpointReferenceType)提供 [reply endpoint] 属性的值。如果需要回复,则必须存在此元素。如果此元素存在,则 wsa:MessageID 必须存在。/wsa:FaultTo
此 OPTIONAL 元素(类型为 wsa:EndpointReferenceType)提供 [fault endpoint] 属性的值。如果此元素存在,则 wsa:MessageID 必须存在。
【讨论】: