【发布时间】:2016-10-26 21:06:28
【问题描述】:
谁能解释一下,如果我们可以在JaxWs 中使用SOAPHandler 做更多事情,为什么我们还需要LogicalHandler?
【问题讨论】:
标签: java web-services jax-ws java-metro-framework
谁能解释一下,如果我们可以在JaxWs 中使用SOAPHandler 做更多事情,为什么我们还需要LogicalHandler?
【问题讨论】:
标签: java web-services jax-ws java-metro-framework
来自 JAX-WS 2.2 spec:
JAX-WS 2.0 定义了两种类型的处理程序:
逻辑处理程序,仅 对消息上下文属性和消息有效负载进行操作。逻辑的 处理程序与协议无关,无法影响协议 消息的特定部分。逻辑处理程序是处理程序 实现 javax.xml.ws.handler.LogicalHandler。协议处理程序 对消息上下文属性和协议特定消息进行操作。
协议处理程序特定于特定协议,并且可以访问 并更改消息的协议特定方面。协议处理程序 是实现从 javax.xml.ws- 派生的任何接口的处理程序 .handler.Handler 除了 javax.xml.ws.handler.LogicalHandler。
...
SOAP 以外的协议的处理程序应该实现一个 扩展 javax.xml.ws.handler.Handler 的协议特定接口。
因此,简而言之,如果您不需要与任何 SOAP 有任何关系,则无需实现 SOAPHandler。一个用例可能是只处理 HTTP 标头、附件或检查 HttpServletRequest 的处理程序。是的,您可以使用 SOAPHandler 做更多事情,但有时您不需要访问 SOAP 标头、SOAPMessage 或有效负载 DOM 访问。
【讨论】: