从org.apache.cxf.binding.soap.SoapMessage中提取信息

时间:2011-02-28 16:31:15

标签: java soap cxf

有没有办法从org.apache.cxf.binding.soap.SoapMessage的实例中获取soap动作?

我正在编写一个Interceptor,它会将传入和传出的消息记录到我的CXF服务中,作为其中的一部分,包含所请求的特定soap动作会很有用。我已经能够使用message.getHeader(name)从Soap标头中获取有用信息,只需要Soap操作即可完成日志。

由于

1 个答案:

答案 0 :(得分:2)

我不完全确定soap操作的存储位置,但我能够使用类似的内容提取有关请求的信息:

public class LoggingInterceptor extends AbstractPhaseInterceptor<Message>
{
   //...//
    public void handleMessage(Message message) throws Fault
    {
       Message inMessage = message.getExchange().getInMessage();
       MessageInfo mi = (MessageInfo) inMessage.get("org.apache.cxf.service.model.MessageInfo");
       String methodName = mi.getOperation().getInputName();
       //...
    }
}