WEB服务:如何在Web服务中存储格式错误的XML?

时间:2012-11-01 10:54:32

标签: java xml web-services

我正在托管一项网络服务。我想处理这个场景,以防客户端发送格式错误的XML

这是我创建的处理程序

public boolean handleMessage(SOAPMessageContext smc)
{
    Boolean outboundProperty =
        (Boolean)smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

    SOAPMessage message = null;
    try
    {
               // This handling iss required in case a mal-formed XML is sent.    
               message = smc.getMessage();    
    }
    catch(Throwable t ) 
    { 
          // I want to log the XML in the database
          // But the problem is I don't know how to get the XML
          // as message is null.
    }

}

我进入catch(Throwable t)块,我没有关于发送的XML的信息。 我可以登录到错误日志表只是客户端发送了格式错误的XML。

实际要求:

记录和存储格式错误的XML以进行跟踪。

1 个答案:

答案 0 :(得分:0)

请使用以下代码获取soap消息中的确切行号和异常以进行日志记录:

public boolean handleMessage(SOAPMessageContext mc) {
    try {
        final SOAPMessage message = mc.getMessage();

        String i = convertToString(message);

        System.out.println(i);

        return true;
    } catch (Exception e) {
        System.out.println(e.getMessage());
//            e.printStackTrace();
        return false;
    }
}

本规范将处理任何格式错误的SOAP消息