当前位置: 首页 > 知识库问答 >
问题:

maven-cxf-codegen-plugin使用Jaxb绑定为所有生成的类添加继承

樊俊悟
2023-03-14

我正在使用Apache CXF的cxf-codegen-plugin将wsdl转换为java对象。我指定了一个绑定文件来添加额外的jaxb处理。我希望所有这些文件都从接口继承(或扩展抽象类)。

我的问题是,虽然我可以让它与一个生成的文件一起工作,但使用

<jaxb:bindings node="xsd:complexType[@name='sampleObj'] ">
        <inheritance:implements>example.Dao</inheritance:implements>
    </jaxb:bindings>
 <jaxb:bindings  multiple="true" node="//xsd:compexType[@name='*'] ">
 <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <executions>
                <execution>
                    <id>generate-resources</id>
                    <phase>process-resources</phase>
                    <configuration>
                        <sourceRoot>${project.build.directory}/generated/</sourceRoot>
                                               <wsdlOptions>
                            <wsdlOption>

                                <wsdl>${wsdl_location}</wsdl>
                                <wsdlLocation>classpath:wsdl.wsdl</wsdlLocation>

                                <!--<wsdlLocation>classpath:wsdl.wsdl</wsdlLocation>-->
                                <extraargs>
                                    <extraarg>-autoNameResolution</extraarg>
                                    <extraarg>-xjc-Xfluent-api</extraarg>
                                    <extraarg>-xjc-Xbg</extraarg>
                                    <extraarg>-verbose</extraarg>
                                    <extraargs>-validate</extraargs>
                                    <extraargs>-mark-generated</extraargs>
                                          <extraargs>-xjc-Xinheritance</extraargs>
                                    <extraarg>-p</extraarg>
                                    <extraarg>com.example</extraarg>
                                </extraargs>

                                <bindingFiles>
                                      <bindingFile>${project.build.directory}\classes\jax-ws_binding.xjb</bindingFile>

                                </bindingFiles>
                            </wsdlOption>
                        </wsdlOptions>

                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-fluent-api</artifactId>
                    <version>3.0</version>
                </dependency>
                <dependency>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-basics</artifactId>
                    <version>0.6.5</version>
                </dependency>
                <dependency>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-basics-annotate</artifactId>
                    <version>0.6.5</version>
                </dependency>
                 <dependency>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-basics-runtime</artifactId>
                    <version>0.6.5</version>
                </dependency>

                <dependency>
                    <groupId>org.apache.cxf.xjcplugins</groupId>
                    <artifactId>cxf-xjc-boolean</artifactId>
                    <version>2.7.0</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.cxf</groupId>
                    <artifactId>cxf-api</artifactId>
                    <version>${cxf.version}</version>
                </dependency>
            </dependencies>
        </plugin>

    </plugins>

共有1个答案

冯元魁
2023-03-14

试试这个

<jaxb:bindings node="xsd:complexType">
 类似资料:
  • 问题内容: 我正在尝试获取 cxf-codegen-plugin 以从wsdl文件生成源。当调用wsdl2java手册时,会生成所需的类,但是当使用 mvn generate-sources时, 什么也不会发生,并且我收到消息“项目不需要目标”。直接调用插件没有帮助。 我的诗歌摘录如下: 问题答案: 这看起来非常像我(成功)在我的一个项目中配置该插件的方式。我希望它能奏效。(我相信您可以省略;的默

  • 我正在尝试让cxf-codegen-plugin从我的wsdl文件生成源代码。当调用wsdl2java manual时,生成了所需的类,但当使用mvn generate-sources时,什么也没有发生,我得到的消息是“No goals needed for Project”。直接调用插件没有帮助。

  • 使用这个maven插件,我能够生成我的类,并在另一个模式中重用它们;这真是太棒了! 现在我发现自己的模式需要两个插曲(从模式生成的两个不同的包)。我只是简单地尝试在XJC中添加另一个arg,但没有起作用。 然后我更改了两个参数的顺序,错误的目标是另一个模式。然后我明白了,这两集都可以,但这可能不是做事的方式。 以下是我的一些POM: 我得到的是: 新手在这里,任何帮助非常感谢:)。

  • 我有一个maven模型项目,我通过maven命令-clean install生成jaxb类,jaxb类在目标文件夹下生成,jar文件在目标文件夹下生成。m2存储库文件夹。 现在在我的另一个项目中,将这个jar添加为具有适当组id和artifactId的依赖项。 但我得到的是生成的jaxb类的ClassNotFoundException和编译错误。 我正在更新我的问题以添加更多细节。 模型项目的Po

  • 我对Jaxb和这个maven-jaxb2插件非常陌生 这是我的. xsd文件: 这是我的。xjb文件: 当它生成时,它给出的java类有点像: 但是我不想为用户和用户列表重复相同的代码,我可以通过注释或定义正则表达式来做什么。请建议一些方法。 我只是想知道这段代码要写什么 因此,当它创建用户类时,它会显示@xmlRootElement(name='user'),而其他类的@xmlRootEleme

  • 我寻找一些配置,我可以改变接口的名称,已生成,但没有找到解决方案。 对此有什么想法吗??