如何防止在CXF Web服务客户端中生成JAXBElement

问题描述:

我想创建一个使用CXF的Web服务客户端来使用WCF Web服务。 当我使用wsdl2java时,它会生成带有JAXBElement类型而不是String的对象。如何防止在CXF Web服务客户端中生成JAXBElement <String>?

我读了关于使用jaxb bindings.xml文件设置generateElementProperty =“false”来尝试修复问题,但我正在使用的Web服务包含7个导入的模式。

如何在所有七个模式中指定generateElementProperty="false",或者是否有将其应用于所有模式的方法?

你必须如下创建一个绑定文件,这将让全球应用,并把它作为 WSDL2Java的 - B“bindings.txt”“WSDL”

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

http://cxf.apache.org /docs/maven-cxf-codegen-plugin-wsdl-to-java.html有关如何使用maven插件设置绑定文件的说明。 – ScArcher2 2011-01-19 16:36:17

+1

我不知道为什么它不是默认行为。 – axk 2012-12-22 17:04:40

+1

如这里所建议的那样,为映射文件使用更具体的文件扩展名比如'.xml'或'.xjb'会更好一些。http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/ 2.0/tutorial/doc/JAXBUsing4.html#wp148366 – schnatterer 2014-04-11 07:18:33