【问题标题】:Handler should not directly implement the javax.xml.ws.handler.Handler interfaceHandler 不应该直接实现 javax.xml.ws.handler.Handler 接口
【发布时间】:2018-03-28 03:59:18
【问题描述】:

在此之前,我使用SOAPHandler< SOAPMessageContext > 来处理来自网络服务的数据。代码如下:

public class MyBillSoapMessageHandler implements
    SOAPHandler< SOAPMessageContext >  {

    @Override
    public boolean handleMessage(SOAPMessageContext context) {

       // This following line something will hit out of memory
       SOAPMessage message = context.getMessage( );

       // some other code continue...
    }
}

我试过谷歌它并从这个链接中读到一些东西: JAX-WS SoapHandler with large messages: OutOfMemoryError

根据我的理解,用户MessageHandlerContextSOAPMessageContext好,所以我试图改变它,变成:

public class MyBillSoapMessageHandler implements
    MessageHandler< MessageHandlerContext >  {

    @Override
    public boolean handleMessage(MessageHandlerContext context) {

       //... code here ...//
    }
}

但是,当我运行它时,我点击了:

原因:javax.xml.ws.soap.SOAPFaultException:com.mybill.ws.camel.MyBillSoapMessageHandler 处理程序不应直接实现 javax.xml.ws.handler.Handler 接口。

我不确定为什么会收到此错误。由于我的服务器没有使用MessageHandlerContext,是否有任何原因发生?

请多多指教。

【问题讨论】:

    标签: java web-services soap message-handlers


    【解决方案1】:

    我设法通过使用消息访问器来修复它。

    我的示例代码如下:

    Object accessor = context.get("jaxws.message.accessor");
    
    if (accessor != null) {
                    baosInString = accessor.toString();
                    }
    

    基于 IBM 网站的建议。 http://www-01.ibm.com/support/docview.wss?uid=swg1PM21151

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多