从JAX-WS服务获得原始有效载荷



拥有带有XML有效载荷的基于肥皂的Web服务,我如何获取JAX-WS中的XML有效载荷> 2.0客户端?

我可以看到这个问题将如何标记为重复,但请忍受。

似乎选项是:

  1. 使用调度API。但是,这需要我降低(ER)级别并手动创建请求有效载荷,我想避免。

  2. 使用JAX-WS的处理程序基础架构获取有效载荷并可能通过MessageContext属性将其传递回客户端,但这仍然会将XML降低到我想避免的Jaxb对象树中。

所以,我该如何:

  1. 使用SEI调用Web服务 - 从头开始创建XML请求
  2. 没有混乱
  3. 抓住" RAW" XML响应,而不会发生JAXB unmarshalling发生

听起来很简单,对吗?

在非目标中,jax-ws 2规范说明'可插入数据绑定JAX-WS 2.0将将数据结合到JAXB [10];这不是提供一个目标插件API允许使用其他类型的数据绑定技术代替JAXB。然而,JAX-WS 2.0将保持有选择性禁用数据绑定以提供XML的能力片段适合用作替代数据绑定技术的输入。'

因此,您应该能够访问原始有效载荷。

以下示例也在规范中:

4.3.5.5异步,回调,面向有效载荷

class MyHandler implements AsyncHandler<Source> {
...
public void handleResponse(Response<Source> res) {
Source resMsg = res.get();
// do something with the results
}
}
Source reqMsg = ...;
Service service = ...;
Dispatch<Source> disp = service.createDispatch(portName,
Source.class, PAYLOAD);
MyHandler handler = new MyHandler();
disp.invokeAsync(reqMsg, handler);

由于规范还指出,绑定具有其自己的处理链(请参阅第9章),因此您应该能够从链条中删除JAXB处理程序,以便Jaxb编组/Unmarshalling不参与。

<</p>

相关内容

最新更新