首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用wsimport生成@HandlerChain

如何使用wsimport生成@HandlerChain
EN

Stack Overflow用户
提问于 2012-06-26 15:24:27
回答 3查看 5.9K关注 0票数 3

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

代码语言:javascript
复制
<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任务:

代码语言:javascript
复制
 <wsimport 
        wsdl="../etc/MessageStudio.wsdl"
        sourcedestdir="../src/gen"
        destdir="../classes"
        verbose="false"
        binding="../etc/jaxws.bindings.xml">
 </wsimport>

但是我没有得到任何注释,也没有处理程序链XML文件。Googling只为我找到了更改包、方法和参数以及the JAX-WS RI page的解决方案。

你能帮我找到我的配置中的缺陷吗?或者用另一种方法,除了修改生成的代码之外,让我的处理程序进入链中?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-26 18:28:47

答案是RI示例是不正确的。需要有一个处理程序链包装器标记:

代码语言:javascript
复制
<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>

票数 5
EN

Stack Overflow用户

发布于 2013-10-27 05:16:26

结果是,生成的处理程序链文件放在编译后的类文件所在的输出目录(target/package)中。如果你想改变这一点,你可以使用"destDir“选项来实现。另外,将"xnocompile“设置为false,否则生成的类文件将与处理程序文件位于同一目录中。希望他们不会在文档方面做如此半**的工作。

票数 2
EN

Stack Overflow用户

发布于 2014-11-19 17:01:39

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

更正如下:

代码语言:javascript
复制
<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>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11202516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档