3

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

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”。我认为这就是问题所在。

我的问题是:我可以在我的应用程序中进行任何配置来接受这个无效字符吗?

4

2 回答 2

2

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

这就是问题所在。该服务是不符合 WS-I 的“rpc/encoded”。开发人员在过去某个时候经过激烈讨论后决定不“修复”此错误

于 2012-10-10T09:42:32.500 回答
2

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

创建自己的 LogHandler

查找和销毁非法字符的方法

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

于 2012-10-11T13:36:36.520 回答