Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java soap处理程序中装入和出站xml之间的关联_Java_Web Services_Soap_Jax Ws_Handler - Fatal编程技术网

Java soap处理程序中装入和出站xml之间的关联

Java soap处理程序中装入和出站xml之间的关联,java,web-services,soap,jax-ws,handler,Java,Web Services,Soap,Jax Ws,Handler,我正在使用org.apache.cxf:cxfcodegen插件从wsdl文件创建web服务。对于这些服务,我编写了一个简单的SOAPHandler来记录入站和出站xml 在这里,我可以检查xml是出站还是入站: (Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); 但它们之间的相关性存在一个问题。我如何知道任何入站xml都对应于任何出站xml?最好的检查方法是什么?例如,有没有办法在MessageCon

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

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

(Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
但它们之间的相关性存在一个问题。我如何知道任何入站xml都对应于任何出站xml?最好的检查方法是什么?例如,有没有办法在MessageContext修改中实现这一点


提前感谢。

因为
SOAPMessageContext
也是一个
映射
,您可以在入站端添加一个相关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);
}

谢谢你的回答。此消息上下文是否特定于每个soap请求?我只有一个服务实例,并且只有一个SOAPHandler。如果同时会有数千个请求呢@Carlo PellegriniYes每个请求都绑定了一个新的MessageContext。