java - 在 pom.xml 中定义 wsdl2java 参数

标签 java maven cxf

我是 Maven 和 CXF 的新手,我正在尝试设置 pom.xml 以使用 wsdl2java 生成代码。我有一些参数需要添加到 wsdl2java 命令中,但我不确定如何添加。

这是命令在终端中的显示方式:

wsdl2java -fe jaxws21 -d gen -validate -p com.example -faultSerialVersionUID FQCN -asyncMethods -bareMethods -exceptionSuper com.example.ExampleException wsdl/objects.wsdl

在我的 pom.xml 中,我有以下内容:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cxf.version}</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${project.basedir}/src/main/resources/wsdl/objects.wsdl</wsdl>
                        <wsdlLocation>classpath:wsdl/objects.wsdl</wsdlLocation>
                    </wsdlOption>
                </wsdlOptions>
                <defaultOptions>
                    <markGenerated>true</markGenerated>
                    <asyncMethods />
                    <bareMethods />
                </defaultOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

我很确定我正确地获得了 asyncMethods 和 bareMethods 参数,因为代码生成正常。不过我对一些事情很好奇。

我想知道如何:

  • -fe 参数与 jaxws21 值一起添加

  • 添加带有 com.example 值的 -p 参数

  • 添加 -faultSerialVersionUIDFQCN

  • 添加 -exceptionSupercom.example.ExampleException

我尝试阅读 CXF 文档、SO、Google 和许多其他地方。我通过谷歌搜索“cxf pom filetype:xml”阅读了许多不同的 xml 文件。不幸的是,我无法弄清楚最后一点。

最佳答案

根据您的问题,配置如下:

... ...    

<defaultOptions>
    <markGenerated>true</markGenerated>
    <asyncMethods />
    <bareMethods />
    <!-- add the -fe argument together with the jaxws21 value -->
    <frontEnd>jaxws21</frontEnd>
    <!-- add the -p argument with the com.example value -->
    <packagenames>
        <packagename>com.example</packagename>
    </packagenames>
    <!-- add the -faultSerialVersionUID with the FQCN value -->
    <faultSerialVersionUID>FQCN</faultSerialVersionUID>
    <!-- add the -exceptionSuper with the com.example.ExampleException value -->
    <exceptionSuper>com.example.ExampleException</exceptionSuper>
</defaultOptions>

... ...

您可以反编译cxf-codegen-plugin.jar并直接查看源代码以查看它如何解析这些命令行参数,更具体地说,这个类:

org.apache.cxf.maven_plugin.wsdl2java.WsdlOption

希望这有帮助。

关于java - 在 pom.xml 中定义 wsdl2java 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946354/

相关文章:

java - 如何以编程方式确定特定字符集中字符的最大大小(以字节为单位)?

java - PDFBox 2.0 RC3 -- 查找和替换文本

java - Tomcat下的Spring CXF Soap Web服务 : No Services Found

java - Spring下如何在Jetty服务器上发布CXF webservice?

java - CXF + wsdl2java + 认证

java - 来自 cmdline 的 Junit - java.lang.ClassNotFoundException

java - 在 Java 中,我如何设计一个既通用、简单又可读的 API

java - Jenkins 构建没有失败

java - 在运行时访问 OSGi 包中的 pom 属性

maven - 无法构建 Maven 项目