确定String是否为SOAPMessage

时间:2015-06-03 14:05:41

标签: java xml validation soap

我需要检查String对象是否是SOAPMessage。换句话说,如果我可以干净地将String转换为SOAPMessage而没有任何错误。

我有一个文件中的字符串消息列表,可能是也可能不是SOAPMessages,如果是,它们的格式也不同:

<SOAP-ENV:Envelope>...</SOAP-ENV:Envelope>
<soapenv:Envelope>...</soapenv:Envelope>

它们也可能是其他类型,因此我不能使用xml验证技术来验证SOAPMessage并确定它是如此。

目前,我正在将其转换为SOAPMessage对象,并检测进程中的任何错误以确定它是否是有效的SOAPMessage。

try {
    // TODO Validate SOAPMessage
    InputStream in = new ByteArrayInputStream(stream.getBytes());
    MessageFactory mf = MessageFactory.newInstance();
    SOAPMessage payload = mf.createMessage(null, in);
} catch (SOAPException e) {
    throw new SOAPException("Error in Creating SOAP Message Parts."
            + " The Request Message may be Invalid.", e);
} catch (IOException e) {
    throw new IOException("Input Read Error. No Input Received.", e);
}

但是,我正在寻找一种方法来简化过程,如果消息不是SOAPMessage,则不必完成此过程。此过程还会抛出一条System.out.err消息,我不想看到它。

我已经在线查看了,但是当我搜索这个主题时,我只找到了SOAPMessage或类似技术的xml验证。

0 个答案:

没有答案