我有一套從WSDL生成的Java類,我將另一個WSDL添加到我正在使用的另一個Web服務的項目中,但是從第二個WSDL生成的類中沒有@XmlRootElement註釋,並且不明白爲什麼不。想要在由jaxb2-maven-plugin生成的類中生成@XmlRootElement
這裏的聚甲醛的插件部分:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceType>wsdl</sourceType>
<sources>
<source>${resources.path}my-module/src/main/resources/wsdl/w1.wsdl</source>
<source>${resources.path}my-module/src/main/resources/wsdl/w2.wsdl</source>
</sources>
<extension>true</extension>
<xjbSources>
<xjbSource>src/main/resources/xjb/bindings.xjb</xjbSource>
</xjbSources>
</configuration>
</plugin>
而這裏的bindings.xjb:
<?xml version="1.0"?>
<jxb:bindings version="1.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc" xmlns:xs="http://www.w3.org/2001/XMLSchema">
節點= 「/ XS:模式」 - >
我重新廣告在this SO張貼關於使用annotate
標籤,所以我插入
<annox:annotate>
<annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement" />
</annox:annotate>
在bindings.xjb文件中指定的地方,但我當然沒有對annox
前綴的定義,使沒有按沒有工作。該帖子並未指明定義的位置。
我也經歷了this SO帖子中的多個答案;不幸的是,各種方法都遺漏了一些步驟。例如,我願意直接調用marshall和unmarshall方法,但我需要知道他們所說的「JAXBContext」的位置,以及unmarshall調用的外觀或查看的位置。
是annox
正確的方法來做到這一點?有沒有另一種正確的方法來做到這一點?
您可以發佈W1/w2.wsdl(也許在簡化形式)? –
@ScottKurz會很高興,但必須等到週一(美國東部時間);只是試圖進入我的工作電腦,登錄序列有問題... – arcy