【问题标题】:How to generate @HandlerChain using wsimport如何使用 wsimport 生成 @HandlerChain
【发布时间】:2012-06-27 11:40:39
【问题描述】:

我正在使用 wsimport (JAX-WS 2.1.3) 从 WSDL 生成 Java,并且需要使其生成 @HandlerChain 注释。所以我创建了一个 JAX-WS 绑定文件:

<jaxws:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
wsdlLocation="../etc/MessageStudio.wsdl">

<jaxws:bindings node="wsdl:definitions">
    <javaee:handler-chain>
        <javaee:handler-chain-name>StrongmailHandlers</javaee:handler-chain-name>               
            <javaee:handler>
                <javaee:handler-name>OrganizationTokenHandler</javaee:handler-name>         
                <javaee:handler-class>com.bossmedia.strongmailadapter.deliveryadapter.OrganizationTokenHandler</javaee:handler-class>           
            </javaee:handler>                     
    </javaee:handler-chain>
</jaxws:bindings>

并运行 wsimport Ant 任务:

 <wsimport 
        wsdl="../etc/MessageStudio.wsdl"
        sourcedestdir="../src/gen"
        destdir="../classes"
        verbose="false"
        binding="../etc/jaxws.bindings.xml">
 </wsimport>

但我没有得到注释,也没有处理程序链 XML 文件。谷歌搜索只能找到更改包、方法和参数的解决方案,以及我复制 XML 的the JAX-WS RI page。

您能帮我找出我的配置中的缺陷,还是以其他方式(除了修改生成的代码)来让我的处理程序进入链中吗?

【问题讨论】:

    标签: java jax-ws wsimport handlers


    【解决方案1】:

    答案是 RI 示例不正确。需要有一个 handler-chains 包装标签:

    <jaxws:bindings
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
    wsdlLocation="../etc/MessageStudio.wsdl">
    
    <jaxws:bindings node="wsdl:definitions">
        <javaee:handler-chains>
            <javaee:handler-chain>
                <javaee:handler-chain-name>StrongmailHandlers</javaee:handler-chain-name>               
                <javaee:handler>
                    <javaee:handler-name>OrganizationTokenHandler</javaee:handler-name>         
                    <javaee:handler-class>com.bossmedia.strongmailadapter.deliveryadapter.OrganizationTokenHandler</javaee:handler-class>           
                </javaee:handler>                     
            </javaee:handler-chain>
        </javaee:handler-chains>
    </jaxws:bindings>
    

    【讨论】:

    • 又一个被文档误导的可怜虫。现在它起作用了。谢谢
    • 非常感谢!!!示例中的那个错误花费了 2 个小时的研究和调试等……直到我发现这个有用的提示。现在可以了!并检查有关放置它的 handler-file.xml 的第二个推荐......奇怪的行为!
    【解决方案2】:

    原来生成的处理程序链文件放在了编译好的类文件所在的输出目录(target/package)。如果你想改变它,你可以使用“destDir”选项来做到这一点。此外,将“xnocompile”设置为 false,否则生成的类文件将与处理程序文件位于同一目录中。真希望他们在文档方面没有做这么半**的工作。

    【讨论】:

      【解决方案3】:

      示例中仍然存在错误。根据 XML 方案 (http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/javaee_web_services_metadata_handler_2_0.xsd),标签 &lt;javaee:handler-chain-name&gt; 不存在。

      更正的是:

      <jaxws:bindings
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
      xmlns:javaee="http://java.sun.com/xml/ns/javaee"
      wsdlLocation="../etc/MessageStudio.wsdl">
      
      <jaxws:bindings node="wsdl:definitions">
          <javaee:handler-chains>
              <javaee:handler-chain>
                  <javaee:handler>
                      <javaee:handler-name>OrganizationTokenHandler</javaee:handler-name>         
                      <javaee:handler-class>com.bossmedia.strongmailadapter.deliveryadapter.OrganizationTokenHandler</javaee:handler-class>           
                  </javaee:handler>                     
              </javaee:handler-chain>
          </javaee:handler-chains>
      

      【讨论】:

      • 似乎还缺少两个结束标记
      猜你喜欢
      • 2016-09-12
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多