[英]JAXB2 Basic Annotate plugin not working with maven cxf-codegen-plugin
我正在使用cxf-codegen-plugin從wsdl文件生成Java類。 我想為每個類添加注釋,並指定一個綁定文件,然后使用jaxb2-basics-annotate插件來完成。 生成的文件不包含綁定文件中指定的注釋。
這是pom文件中的配置
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.7.4</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>src/main/resources/wsdl/QueryJobService.wsdl</wsdl>
<wsdlLocation>classpath:wsdl/QueryJobService.wsdl</wsdlLocation>
<extraargs>
<extraarg>-xjc-Xannotate</extraarg>
</extraargs>
<bindingFiles>
<bindingFile>src/main/resources/wsdl/xsd/job-bindings.xjb</bindingFile>
</bindingFiles>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>1.0.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
這是綁定文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:annox="http://annox.dev.java.net"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
version="2.1">
<jaxb:bindings schemaLocation="data.xsd" node="/xs:schema">
<jaxb:bindings node="//xs:complexType[@name='resource']">
<annox:annotate target="class">
<annox:annotate annox:class="javax.xml.bind.annotation.XmlSeeAlso" value="model.common.sm.dcp.com.data._1.SimOrder"/>
</annox:annotate>
</jaxb:bindings>
</jaxb:bindings>
在調試模式下運行Maven不會顯示任何異常。 是不是cxf-codegen-plugin和jaxb2-basics-annotate不能一起使用? 還是我的配置有問題?
它應該與CXF一起使用。
請確保完全應用綁定。 嘗試用<jaxb:class name="FooBar"/>
替換annox:annotate-它會作為FooBar生成嗎?
還可以嘗試使用新的Java語法: https : //github.com/highsource/jaxb2-annotate-plugin而不是XML。
最后,我想您可能在根jaxb:bindings
元素上缺少此屬性:
jaxb:extensionBindingPrefixes="annox"
請參閱此示例 。
所以免責聲明:我是jaxb2-annotate-plugin的作者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.