gpt4 book ai didi

java - 从 Wildfly WebServiceContext 获取 SOAP 消息

转载 作者:行者123 更新时间:2023-12-01 12:18:41 25 4
gpt4 key购买 nike

我有一个带有 4 个 WebMethods 的 Wildfly 8.1.0 WebService。

我需要记录 SOAP 消息(业务需求)

我注入(inject)了有效的 WebServiceContext

@Resource
private WebServiceContext wsContext;

我可以获得org.apache.cxf.jaxws.context.WrappedMessageContext:

WrappedMessageContext wrappedMessageContext = (WrappedMessageContext) wsContext.getMessageContext();

还有org.apache.cxf.message.Message:

Message message = wrappedMessageContext.getWrappedMessage();

但不是 SOAP 消息。

有人有什么想法吗?

最佳答案

您正在检索错误/不必要的消息上下文。你应该拥有的是SOAPMessageContext ,从中您可以轻松获取SOAPMessage。你应该改为:

SOAPMessageContext msgCtxt = (SOAPMessageContext) wsContext.getMessageContext();
SOAPMessage soapMsg = msgCtxt.getMessage(); //gotten your SOAP message
//log your message

编辑:

根据您的评论,您似乎正在注入(inject)特定于 CXF 的 MessageContext (出于明显的可移植性问题,可能不应该这样做)。

org.apache.cxf.binding.soap.SoapMessage soapMessage =  (org.apache.cxf.binding.soap.SoapMessage)wrappedMessage.getWrappedMessage();     //continuing from your current code

关于java - 从 Wildfly WebServiceContext 获取 SOAP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26842375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com