打印SOAP消息的XML内容

tob*_*yer 2 java soap web-services cxf

我正在使用Apache CXF作为我的webservices.我创建了一个实例AbstractSoapInterceptor.在public void handleMessage(SoapMessage message) throws Fault我的方法中,我想将截获的消息的XML内容打印到控制台.我怎样才能做到这一点?

Aar*_*ver 9

检查这个出去找入境的拦截器.将它放在这里供参考......

public class InterceptorMensajeSOAPIn extends AbstractSoapInterceptor {

      private static Logger log =
Logger.getLogger(InterceptorMensajeSOAPIn.class);



      private SAAJInInterceptor saajIn = new SAAJInInterceptor();

      public InterceptorMensajeSOAPIn(){

            super(Phase.PRE_PROTOCOL);

            getAfter().add(SAAJInInterceptor.class.getName());

      } 


      public void handleMessage(SoapMessage message) throws Fault {

        SOAPMessage soapMessage = getSOAPMessage(message);

        try {

                  soapMessage.writeTo(System.out);

            } catch (Exception e) {

                  e.printStackTrace();

            }
      }


      private SOAPMessage getSOAPMessage(SoapMessage smsg){

            SOAPMessage soapMessage = smsg.getContent(SOAPMessage.class);

        if (soapMessage == null) {

            saajIn.handleMessage(smsg);

            soapMessage = smsg.getContent(SOAPMessage.class);

        }   

        return soapMessage;

      }
}
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案是否适用于 cxf 3.x?我试过了,对 getContent 的调用总是返回 null,但也许我做错了什么,或者 3.0.0 中的 api 发生了变化。 (2认同)