Java 如何使用wsimport生成@HandlerChain

Java 如何使用wsimport生成@HandlerChain,java,jax-ws,wsimport,handlers,Java,Jax Ws,Wsimport,Handlers,我正在使用wsimport(JAX-WS2.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="h

我正在使用wsimport(JAX-WS2.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>

strong邮件处理程序
组织令牌处理程序
com.bossmedia.strongmailadapter.deliveryadapter.OrganizationTokenHandler

并运行wsimport Ant任务:

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

但我没有得到注释和处理程序链XML文件。谷歌搜索只能为我找到更改包、方法和参数以及从何处复制XML的解决方案


除了修改生成的代码之外,您能帮我找到配置中的缺陷吗?答案是RI示例不正确。需要有一个处理程序链包装标签:

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

strong邮件处理程序
组织令牌处理程序
com.bossmedia.strongmailadapter.deliveryadapter.OrganizationTokenHandler

结果是,生成的处理程序链文件被放在输出目录(target/package)中,编译的类文件就在这个目录中。如果要更改此选项,可以使用“destDir”选项。另外,将“xnocompile”设置为false,否则生成的类文件将与处理程序文件位于同一目录中。但愿他们在文档方面没有做这样半途而废的工作。

示例中仍然存在错误。根据XML方案(),标记
不存在

更正如下:

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

组织令牌处理程序
com.bossmedia.strongmailadapter.deliveryadapter.OrganizationTokenHandler

文件误导了另一个糟糕的b*标准。现在它起作用了。谢谢,谢谢!!!示例中的错误花费了2个小时的研究和调试等。。。直到我发现这个有用的提示。现在可以了!并检查关于handler-file.xml放置位置的第二个选项。。。奇怪的行为!似乎仍然缺少两个结束标记