【问题标题】:How to get rid of JAXBElement<Integer> in WS client jar generated by clientgen如何摆脱 clientgen 生成的 WS 客户端 jar 中的 JAXBElement<Integer>
【发布时间】:2012-09-20 05:04:54
【问题描述】:

我正在通过关注clientgen ant 任务生成ws客户端

    <clientgen-contact
        wsdl="${wsdl-url-contact}"
        destFile="${output-file-contact}"
        packageName="${packageName}"
        type="JAXWS"
        overwrite="true"
    />

但生成的 jar 中的某些类具有变量名称 JAXBElement&lt;Integer&gt; 而不是 Integer

我怎样才能避免这种情况并改为使用Integer


解决方案

解决方案是像 Paulius Matulionis 所说的那样创建一个绑定文件。您可以将绑定文件参数提供给 clientgen,如下所示:

    <clientgen-contact
        wsdl="${wsdl-url-contact}"
        destFile="${output-file-contact}"
        packageName="${packageName}"
        type="JAXWS"
        overwrite="true"  
    >
        <binding file="${bindingFilePath}"/>
    </clientgen-contact>

Binding.xml 完整内容:

<jaxb:bindings version="2.1" 
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
   <jaxb:globalBindings generateElementProperty="false"/> 
</jaxb:bindings> 

【问题讨论】:

    标签: jakarta-ee soap ant weblogic jax-ws


    【解决方案1】:

    您必须创建JAXB 绑定文件并在生成客户端时包含它。该文件应如下所示:

    <jaxb:bindings version="2.0"
                   xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
            <jaxb:globalBindings generateElementProperty="false"/>
    </jaxb:bindings>
    

    标记generateElementProperty 设置为false,它将阻止生成JAXBElement&lt;Integer&gt; 而不是Integer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 2013-08-20
      相关资源
      最近更新 更多