2

jax-ws Web サービスの http 圧縮を有効にしたいと考えています。http ヘッダーを変更できるカスタム ハンドラー チェーンを使用する必要があることがわかりました。

私が見つけたすべてのチュートリアルは、ハンドラー チェーン構成 xml ファイルを指す注釈 @HandlerChain を参照していますが、私の問題は、Web サービスをできるだけ軽量にする必要があるため、外部 xml ファイルでハンドラー チェーンを定義できないことです。

私は次のことを試しましたが、成功しませんでした:

        final Endpoint ep = Endpoint.publish("http://localhost:8878/mywebservice",
                new WebserviceImpl() );
        final Binding binding = ep.getBinding();
        final List<Handler> handlerChain = binding.getHandlerChain();
        handlerChain.add(new MySuperbSOAPHandler());
        binding.setHandlerChain(handlerChain);

誰もこれを行う方法を知っていますか? それは可能ですか?

4

1 に答える 1

6

サービスが既に公開されている場合、ハンドラー チェーンを変更できないようです。

実際の使用例が上記の場合、create() してから publish() するだけで簡単に修正できます。

    final Endpoint ep = Endpoint.create(new WebserviceImpl() );
    final Binding binding = ep.getBinding();
    final List<Handler> handlerChain = binding.getHandlerChain();
    handlerChain.add(new MySuperbSOAPHandler());
    binding.setHandlerChain(handlerChain);
    ep.publish("http://localhost:8878/mywebservice");
于 2012-02-28T15:29:21.567 に答える