首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAXB2 Basic注解插件不适用于maven cxf-codegen-plugin

JAXB2 Basic注解插件不适用于maven cxf-codegen-plugin
EN

Stack Overflow用户
提问于 2014-10-08 21:57:02
回答 1查看 2.8K关注 0票数 2

我使用cxf-codegen-plugin从wsdl文件生成Java类。我想向其中一个类添加注释,并指定一个绑定文件并使用jaxb2-basics-annotate插件来完成此操作。生成的文件不包含绑定文件中指定的注释。

以下是pom文件中的配置

代码语言:javascript
复制
<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>

下面是绑定文件

代码语言:javascript
复制
<?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不能协同工作吗?或者是我的配置有问题?

EN

回答 1

Stack Overflow用户

发布于 2014-10-08 22:47:50

它应该与CXF一起工作。

请确保完全应用了绑定。试着用<jaxb:class name="FooBar"/>这样的东西替换annox:annotate -它会被生成为FooBar吗?

也可以尝试使用新的Java Syntax:https://github.com/highsource/jaxb2-annotate-plugin而不是XML。

最后,我猜您可能在根jaxb:bindings元素上缺少此属性:

代码语言:javascript
复制
jaxb:extensionBindingPrefixes="annox"

请参阅此example

如果没有帮助,给我发一个PR on github

所以声明:我是jaxb2-annotate-plugin的作者。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26258735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档