我的应用程序正在连接到网络服务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”。我认为这就是问题。
我的问题是:我的申请中是否有任何配置可以接受这个无效字符?
答案 0 :(得分:2)
“我的应用程序正在连接到网络服务rpc / encoded。”
这就是问题所在。该服务是“rpc / encoded”,它不符合WS-I标准。开发人员在过去的某个时候进行了激烈的讨论后决定not to 'fix' this error。
答案 1 :(得分:2)
我解决了在org.apache.axis.handlers.LogHandler中放入一个方法来搜索和销毁非法字符的问题,然后再解析前面的xml响应中的内容。
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())));
...
}