只是为了防止有人在这里寻找解决方案:而不是使用JAXBElement,只能通过在绑定文件中将generateElementProperty设置为false来使用Type。
在我的情况下我使用maven从wsdl生成存根文件。
部分POM文件和绑定文件(在此配置被称为javabindings.xml)
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.2.9</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/wsdl2java/generated-sources/src/main/java</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/yourWsdlFileOrURL.wsdl</wsdl>
<extraargs>
<extraarg>-verbose</extraarg>
<extraarg>-b</extraarg>
<extraarg>${basedir}/src/main/resources/javabindings.xml</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
<jaxb:bindings version="2.0"
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:bindings schemaLocation="http://localhost:15002/MiddlewareDataServiceConversion?xsd=xsd0">
<jaxb:bindings node="/xs:schema">
<jaxb:globalBindings generateElementProperty="false"/>
</jaxb:bindings>
</jaxb:bindings>
你读过Javadoc吗? http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBElement.html#JAXBElement%28javax.xml.namespace.QName,%20java.lang.Class,%20java.lang。类,%20T%29 – 2009-09-08 19:31:56
不是答案,但是如果你的WCF DataMembers的IsRequired = true(不可能总是,但在大多数情况下应该可以接受),java开发人员会感谢你。那么你不会得到JAXBEelement。还要考虑明确地使用设置顺序。 – softveda 2010-07-08 13:46:59