从JavaSOAP处理程序获取响应
如果有人能分享他解决以下问题的经验,我将不胜感激。 我在JDK实现中有一个SOAP服务(我相信是Metro) 出于日志记录的目的,我们需要提取传入请求和生成响应的主体。 我试图通过在服务器端实现SOAPHandler来获取它。 我将处理程序配置为Springbean。 我发现的所有示例基本上都复制了Oracle文档中的示例: 这里读取SOAP消息上下文的一个布尔属性,在我看来,它对应于请求或响应 但在我的实验中,调试器从未进入响应对应的分支(else分支)。这样的处理程序应该如何跟踪请求和响应 我还想知道什么消息被读取为messageContext.getMessage():是传入(请求)还是出站(响应) 我现在想知道,通过实现handleMessage()方法来访问请求和响应是否确实可行? 单个处理程序是否同时拦截请求及其响应? 我是否误解了这个例子 而且。。。SOAPHandler-它是每个请求(请求-响应对)的特定实例吗?从JavaSOAP处理程序获取响应,java,jax-ws,soaphandler,Java,Jax Ws,Soaphandler,如果有人能分享他解决以下问题的经验,我将不胜感激。 我在JDK实现中有一个SOAP服务(我相信是Metro) 出于日志记录的目的,我们需要提取传入请求和生成响应的主体。 我试图通过在服务器端实现SOAPHandler来获取它。 我将处理程序配置为Springbean。 我发现的所有示例基本上都复制了Oracle文档中的示例: 这里读取SOAP消息上下文的一个布尔属性,在我看来,它对应于请求或响应 但在我的实验中,调试器从未进入响应对应的分支(else分支)。这样的处理程序应该如何跟踪请求和响应
谢谢请为SoapHandler尝试以下内容:
Boolean isRequest = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (isRequest) {
//handle request
} else {
//handle response
}
对于LogicalHandler:
Boolean outboundProperty = (Boolean)
messageContext.get (MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (outboundProperty.booleanValue()) {
System.out.println("\nOutbound message:");
} else {
System.out.println("\nInbound message:");
}
是的,单个方法同时拦截请求和响应。
Boolean outboundProperty = (Boolean)
messageContext.get (MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (outboundProperty.booleanValue()) {
System.out.println("\nOutbound message:");
} else {
System.out.println("\nInbound message:");
}