Web Services axistools-maven-plugin未从WSDL生成源代码

py49o6xq  于 2022-11-15  发布在  Maven
关注(0)|答案(2)|浏览(135)

我正在使用Apache Axis从我的WSDL文件生成Java源代码。Maven运行成功,没有任何错误,但没有生成类。

问题:我错过了什么?

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>axistools-maven-plugin</artifactId>
        <version>1.4</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>wsdl2java</goal>
                </goals>
                <configuration>
                    <sourceDirectory>/src/main/resources</sourceDirectory>
                    <outputDirectory>/src/main/java</outputDirectory>
                    <wsdlFiles>
                        <wsdlFile>thesourcewsdlfile.wsdl</wsdlFile>
                    </wsdlFiles>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

我显然不确定这种配置有什么问题。

fgw7neuy

fgw7neuy1#

尝试根据您的maven项目来定义源和输出目录,也就是说,使用标准的maven属性在运行时指向正确的绝对路径,按如下所示更改您的配置:

<sourceDirectory>${basedir}/src/main/resources</sourceDirectory>
 <outputDirectory>${basedir}/src/main/java</outputDirectory>

根据此配置,thesourcewsdlfile.wsdl应位于src/main/resources/thesourcewsdlfile.wsdl
因此,完整的插件配置应为:

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>axistools-maven-plugin</artifactId>
        <version>1.4</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>wsdl2java</goal>
                </goals>
                <configuration>
                    <sourceDirectory>${basedir}/src/main/resources</sourceDirectory>
                    <outputDirectory>${basedir}/src/main/java</outputDirectory>
                    <wsdlFiles>
                        <wsdlFile>thesourcewsdlfile.wsdl</wsdlFile>
                    </wsdlFiles>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

此外,必须将以下依赖项添加到项目中:

<dependencies>
    <dependency>
        <groupId>org.apache.axis</groupId>
        <artifactId>axis</artifactId>
        <version>1.4</version>
    </dependency>
    <dependency>
        <groupId>javax.xml</groupId>
        <artifactId>jaxrpc-api</artifactId>
        <version>1.1</version>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.1</version>
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1</version>
    </dependency>
</dependencies>

一般来说,将生成的源代码放在target目录下会更好,因为它们是自动生成的,不应该添加到正在使用的版本控制中。标准位置可以是${project.build.directory}/generated-sources下的任何所需的(有意义的)目录(其中${project.build.directory}是指向target目录的标准属性)。

h7appiyu

h7appiyu2#

恕我直言,resources下缺少wsdl文件夹,只需添加它并运行:

mvn clean generate-sources

相关问题