1

我正在使用 Play Framework 1.2.4 并尝试解析 SOAP 响应。

回应是:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
...
</soap:Body>
</soap:Envelope>

当我尝试解析它时,play.libs.WS.HttpResponse.getXml()我遇到了一个致命错误:

[Fatal Error] :-1:-1: Invalid encoding name "UTF8".

有趣的是,编码不是"UTF8"而是"UTF-8"。那么为什么我会得到这个异常呢?有任何想法吗?

提前致谢..

4

1 回答 1

1

由于发送 UTF8 的非标准客户端,我在 xmlrpc 服务器应用程序中遇到了同样的问题。

正如我发现的那样,引发该异常的是 xerces,而我绕过它的修复方法是使用 EncodingMap 类将 UTF8 注册为 UTF-8:

EncodingMap.putIANA2JavaMapping( "UTF8", "UTF8" );
EncodingMap.putJava2IANAMapping( "UTF8", "UTF8" );
于 2013-06-28T01:25:45.340 回答