2

我想为我的 jax-ws 网络服务启用 http 压缩。我发现我必须使用可以修改 http-headers 的自定义处理程序链来做到这一点。

我找到的所有教程都引用了指向处理程序链配置 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()ing 然后 publish()ing 即可轻松修复。

    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 回答