以前做了个工具,使用cxf的wsdl2java插件,在maven工程中,同时加入manifest.mf文件模板,将wsdl文件打包为bundle化jar包,参考http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html,bundle化使用模板,修改manifest.mf文件。
最近在使用一个wsdl文件生成jar文件的过程中,发现期望出现String类型的成为了如下的JAXBElement<String>
protected JAXBElement<String> requestStatusDescription;
开始网上搜,找到
http://stackoverflow.com/questions/12508741/jaxb-generating-jaxbelementstring-instead-of-string,即使用-b命令,并且使用自定义Jaxb定义,参考
http://cxf.apache.org/docs/wsdl-to-java.html,有如下描述:
Q: How do I pass the binding file to wsdl2java?
A: If you are using wsdl2java via command line tool:
wsdl2java HelloWorld.wsdl -b my_binding.xml
于是修改pom文件,添加-b参数,并添加自定义binding文件
<extraargs>
<extraarg>-autoNameResolution</extraarg>
<extraarg>-b</extraarg>
<extraarg>my_binding.xml</extraarg>
</extraargs>
my_binding.xml如下:
<jaxb:bindings version="2.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxb:bindings>
<jaxb:globalBindings generateElementProperty="false" />
</jaxb:bindings>
</jaxb:bindings>