Web服务响应包含无效的XML字符

时间:2012-10-02 19:55:31

标签: java web-services axis

我的应用程序正在连接到网络服务rpc / encoded。我正在使用Axis 1.4。 当webservice发送响应时,它会发送一个无效字符,然后发送异常:

http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: 
  An invalid XML character (Unicode: 0x3) was found in the element content of the document.

xml编码为“ISO-8859-1”。我认为这就是问题。

我的问题是:我的申请中是否有任何配置可以接受这个无效字符?

2 个答案:

答案 0 :(得分:2)

“我的应用程序正在连接到网络服务rpc / encoded。”

这就是问题所在。该服务是“rpc / encoded”,它不符合WS-I标准。开发人员在过去的某个时候进行了激烈的讨论后决定not to 'fix' this error

答案 1 :(得分:2)

我解决了在org.apache.axis.handlers.LogHandler中放入一个方法来搜索和销毁非法字符的问题,然后再解析前面的xml响应中的内容。

To create your own LogHandler

The method to search and destroy illegal characters

新LogHandler的logMessages方法内置了以下内容: private void logMessages(MessageContext msgContext) throws AxisFault { ... msgContext.setResponseMessage(new Message( stripNonValidXMLCharacters(((Message) msgContext .getResponseMessage()).getSOAPPartAsString()))); ... }