2

我正在编写一个 Java SOAP 客户端,其中多个响应异步返回到客户端 WebService 中。由于响应是异步的,因此客户端必须将MessageId传递给 SOAPHeader。然后,多个响应将传回相同的MessageId,使客户端能够将其请求与多个响应映射。

我有两个处理程序(协议和逻辑)。我的 SOAPHandler 正在获取MessageId,而 LogicalHander 正在获取Payload或实际响应。我想以某种方式将这两条信息联系在一起。

我的问题是我有两段不同的代码,一个是MessageId,另一个是Payload,但我没有办法可靠地连接这两者。

我不确定我是否在寻找某些东西。我可以从 Protocal 或 Logical 处理程序中同时提取 Header 和 Payload 吗?

4

1 回答 1

12

您可以在 SOAP 处理程序中完成这一切。

“JAX-WS 支持两种类型的 SOAP 消息处理程序:SOAP 处理程序和逻辑处理程序。SOAP 处理程序可以访问整个 SOAP 消息,包括消息头和正文。逻辑处理程序只能访问消息的有效负载,不能更改任何协议- 消息中的特定信息(如标题)。”

看到这个以获得一些解释,还有一张漂亮的图片 :) 你也可以阅读 Oracle 文档Overview of SOAP Message Handlers

于 2012-08-22T09:55:45.327 回答