我按照clientgen ant任务
生成ws客户端 <clientgen-contact
wsdl="${wsdl-url-contact}"
destFile="${output-file-contact}"
packageName="${packageName}"
type="JAXWS"
overwrite="true"
/>
但结果罐中的某些类具有变量名JAXBElement<Integer>
而不是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>
答案 0 :(得分:3)
您必须创建JAXB
绑定文件并在生成客户端时包含它。该文件应如下所示:
<jaxb:bindings version="2.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxb:globalBindings generateElementProperty="false"/>
</jaxb:bindings>
标记generateElementProperty
设置为false,它会阻止生成JAXBElement<Integer>
而不是Integer
。