只是爲了防止有人在這裏尋找解決方案:而不是使用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