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 であり、それをバイパスする私の修正は、UTF8 を UTF-8 として登録するために EncodingMap クラスを使用していました。

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