【问题标题】:How to configure @HandlerChain to point to a handler chain configuration file inside a JAR file?如何配置 @HandlerChain 以指向 JAR 文件中的处理程序链配置文件?
【发布时间】:2011-10-26 20:46:03
【问题描述】:

有没有办法引用分布在 JAR 文件中的处理程序配置文件(例如:handler.xml)?

类似这样的:@HandlerChain(file="somefile.jar")@HandlerChain(file="myhandler.xml"),假设 myhandler.xml 存储在 somefile.jar 中。

【问题讨论】:

    标签: java web-services jax-ws


    【解决方案1】:

    对于处理程序的服务器和客户端实现,使用 @HandlerChain 注解,必须指定处理程序的位置 配置为注释文件的相对路径或 绝对网址。例如:

    @HandlerChain(file="../../common/handlers/myhandlers.xml")

    @HandlerChain(file="http://foo.com/myhandlers.xml")

    取自this doc。

    【讨论】:

    • Gonzalo,即使处理程序配置文件位于我的 WEB-INF/lib 中包含的 JAR 中,它也能正常工作吗?
    • 我认为 XML 文件需要与使用它的类在同一个 jar 中,无论 jar 位于何处。
    • Gonzalo,我的问题是 XML 在 JAR 文件中,作为依赖项(例如:my-handler.jar),并且 Web 服务是使用此依赖项的 Web 应用程序的一部分。所以,我不能把 XML 文件和类放在同一个 jar 中。
    • 如果xml配置文件在另一个jar中,我不知道读取xml配置文件的任何策略
    【解决方案2】:

    handler-chain.xml 文件必须在同一个类路径或同一个 jar 中。 您需要指定要加载的xml的实际位置。

    【讨论】:

    • 您能添加一些资源(手册、wiki、...)作为参考吗?
    【解决方案3】:

    如果没有对配置文件的紧密依赖,你可以一起跳过它,并在代码本身中处理所有内容。

    List<Handler> handlerChain = new ArrayList<>();
    handlerChain.add(new MyHandler());
    ((BindingProvider) port).getBinding().setHandlerChain(handlerChain);
    

    【讨论】:

      猜你喜欢
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      相关资源
      最近更新 更多