のJava - JDK 1.6.0.7 - のwsgen -version:このコードでJava(Webサービス - SOAP) - SOAPハンドラをクライアント側に追加してMTOMを正しく有効にするにはどうすればよいですか?
SOAPBinding binding = (SOAPBinding)((BindingProvider)port).getBinding();
binding.setMTOMEnabled(true);
List<Handler> handlerChain = new ArrayList<Handler>();
handlerChain.addAll(binding.getHandlerChain());
handlerChain.add(new MyHandlerSecurity("admin", "admin"));
binding.setHandlerChain(handlerChain);
SoapHeaderは、正しいです:JAX-WS RI 2.2.3-b01-
私は次のような問題を持っていますただし、添付ファイルは常にインラインbase64テキストです。私は上のハンドラを追加することができますどのように
//List<Handler> handlerChain = new ArrayList<Handler>();
//handlerChain.addAll(binding.getHandlerChain());
//handlerChain.add(new MyHandlerSecurity("admin", "admin"));
//binding.setHandlerChain(handlerChain);
HandlerChainにはコメントアウトされている場合、あなたはXOP参照として添付ファイルが表示されますが、このように、クライアントが認証されていないそこにはSoapHeaderはありませんと...
クライアント側でMTOMを有効にしますか?私は右の質問を得たが、私は数ヶ月前に、あなたと同じ問題を抱えていたと思われる場合
私はWSクライアントにloggingHandler(リクエスト/レスポンスをログアウト何か)を設定するために必要な場合は、この答えは私のためusefultました。ありがとう。 – riskop
handleFaultメソッドからfalseを返すとどうなりますか? getHeadersメソッドからnullを返すのはどうですか?メッセージ処理をブロックします偽を返す –
@NicholasDiPiazza、あなたは基本的に「このハンドラは、メッセージ全体を破棄失敗した場合、」https://docs.oracle.com/javaee/5/api/javax/xml/ws/handler/をご確認くださいと言っていますHandler.html#のhandleFault(C) 私たちはその後、私たち自身のハンドラリゾルバを持っている理由である、「このハンドラは何の特定のヘッダを処理していない」あなたは、遡及おそらく返すことにより、ハンドラリゾルバを取り除くことができているgetHeadersにはnullを返します私はそれを試していないhttps://docs.oracle.com/javaee/5/api/javax/xml/ws/handler/soap/SOAPHandler.html#getHeaders() –