2009-07-29 9 views
0

Axis2を使用して、bodyがエンコーディングとしてウィンドウ1252を使用するシステムから生成されたxmlメッセージであるWebサービス応答を生成します。私たちのAxis2システムは、この本体をutf8を使ってSOAPメッセージの中にラップします。その後、メッセージは発信者に送信されます。ただし、呼び出し元は「1バイトのUTF-8の無効なバイト1」のメッセージを拒否し続けます。Apache軸2メッセージ応答の文字エンコーディングを取り除く方法

発信者システムは、応答のxml宣言のencoding属性を取り除くことを提案します。私はこの設定をしないように軸に指示する方法を知らない。どのように知っている?

答えて

1

AxisレスポンスをUTF-8にして、代わりにペイロードのエンコーディングを1252からUTF-8に変更することをお勧めします。ペイロードからSOAPレスポンスをどのように組み立てていますか?

1

元のXMLのエンコーディングは、XMLヘッダーでWindows-1252として正しく宣言されていますか?そうでない場合、それは実際にはXMLではなく、そのシステムは壊れています。 Axis2が実際にデータを変換せずにUTF-8として再ラベル付けすると、Axis2は(非常に)壊れてしまいます。

どちらの場合も、壊れているシステムを修正してください。エンコーディングを削除しないでください。これは最悪のことです。上で示したように、宣言されたエンコーディングを持たないXMLはXMLではなく、XMLのように曖昧に見えるランダムなデータです。

関連する問題