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 を使用しています。