2

Apache CXF フレームワークを使用して SOAP Web サービスを開発しています。私の Web メソッドは、リクエスト パラメータに応じて、バイナリ データまたはプレーン XML のいずれかを返します。ほとんどの要求はバイナリ データを返すため、サービス応答で MTOM を使用するように CXF を構成しました。

しかし、これが常に役立つとは限りません。XML が返されるとき、呼び出し側はマルチパート 1 ではなくプレーン テキスト/xml ドキュメントを取得することを期待します。そのため、Web サービスのバインディングを動的に変更したいと考えています。

CXF ドキュメントには次の例があります。

エンドポイント ep = ...; // 例はそれを取得する方法を説明していません
SOAPBinding バインディング = (SOAPBinding)ep.getBinding();
binding.setMTOMEnabled(真); // または false

質問: どうすればEndpointインスタンスを取得できますか?

Web サービスには Spring アノテーション @Endpoint を、Web メソッドには @PayloadRoot を使用しています。

4

2 に答える 2