我正在使用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".
有趣的是,编码不是&#34; UTF8&#34; 它是&#34; UTF-8&#34; 。那么为什么我得到这个例外呢?有任何想法吗?
提前致谢..
答案 0 :(得分:1)
我的xmlrpc服务器应用程序遇到同样的问题,因为发送UTF8的非标准客户端。
正如我发现的那样,提升异常的是xerces而我绕过它的修复是使用EncodingMap类将UTF8注册为UTF-8:
EncodingMap.putIANA2JavaMapping( "UTF8", "UTF8" );
EncodingMap.putJava2IANAMapping( "UTF8", "UTF8" );