0

Axis2 を使用して、Windows 1252 をエンコーディングとして使用するシステムから生成された xml メッセージを本文とする Web サービス応答を生成します。Axis2 システムは、utf8 を使用してこの本体を SOAP メッセージ内にラップします。その後、メッセージが発信者に送信されます。ただし、発信者は「1バイトUTF-8の無効なバイト1」でメッセージを拒否し続けます

呼び出し元のシステムは、応答の xml 宣言でエンコーディング属性を取り出すことを提案しています。この設定をしないように軸に指示する方法がわかりません。誰でも方法を知っていますか?

4

2 に答える 2

1

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

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

于 2010-01-18T08:09:56.203 に答える
1

おそらく、Axis の応答を UTF-8 のままにし、代わりにペイロードのエンコーディングを 1252 から UTF-8 に変更してみるのが最善です。ペイロードから SOAP 応答をどのように組み立てていますか?

于 2009-07-29T20:48:57.860 に答える