0

Apache CXF で作成された Web サービスを継承しました。応答のテキスト フィールドには、一重引用符や「en」ダッシュ (ASCII 150) などの文字が含まれています。これらは、四角形 (SoapUI を使用) または疑問符として応答に表示されます。

テキストは、WE8MSWIN1252 charset に設定された Oracle データベースから取得されます。Web サービス応答のエンコード/文字セットを一致するように設定する必要があると考えています (つまり、Windows-1252) が、それを行う場所が見つかりません。

テキストを XML エンコードすることもできます (たとえば、これらのダッシュは – として表示されます)。しかし、それらの文字をネイティブにサポートする文字セットを使用することが可能であれば、それは好ましいと思われますよね?

SOAP 応答のエンコーディングを変更する方法はありますか?

4

2 に答える 2

1

以下のコードを Apache CXF Web サービス メソッドに追加してみてください。

import org.apache.cxf.message.Message;
import org.apache.cxf.phase.PhaseInterceptorChain;

Message message = PhaseInterceptorChain.getCurrentMessage(); 
message.put(Message.ENCODING, "Cp1252"); 
于 2013-03-20T16:59:44.043 に答える