java - Soap 处理程序中入站和出站 xml 之间的关联

标签 java web-services soap jax-ws handler

我正在使用 org.apache.cxf:cxf-codegen-plugin 从我的 wsdl 文件创建 Web 服务。对于这些服务,我编写了一个简单的 SOAPHandler< SOAPMessageContext > 来记录入站和出站 xml。

在这里我可以检查 xml 是出站还是入站:

(Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

但是它们之间存在相关性问题。我如何知道任何入站 xml 是否对应于任何出站 xml?检查这一点的最佳方法是什么?例如,有没有办法在MessageContext修改中做到这一点?

提前致谢。

最佳答案

SOAPMessageContext也是Map<String,Object>您可以在入站端添加关联 ID:

String correlationID;

if (!Boolean.TRUE.equals(messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY))){
  correlationID=System.currentTimeMillis(); // Better use somtehing more unique
  messageContext.put("INBOUND_ID",correlationID);
}else{
  correlationID= messageContext.get("INBOUND_ID",correlationID);
}

关于java - Soap 处理程序中入站和出站 xml 之间的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28165248/

相关文章:

java - iText : unable to retrieve/Resources from a page

JavaFX WebViewer 在 Java 6 上?

ios - WCF 到 iOS web 方法

java - Vaadin + Tomcat webapp 可以用来连续运行一个线程吗?

java - 如何解析 JAX-WS 中的 SOAP 响应?

javascript - 我可以在任何浏览器上禁用 SOP(同源策略)进行开发吗?

java - 如何阻止该循环更改值?

java - create方法的返回结果和201状态码

multithreading - 负载平衡SOAP请求

java - PrimeFaces 仪表板