2

我是 maven 新手,我想使用 maven 从 wsdl 文件(使用 wsimport 插件?)生成 java 代码,该文件在我的项目中(不在 url 中)。

我认为 wsdl 文件应该在 myprojet/src/main/resources 中的某个位置,而生成的源文件应该在 myproject/target/generatedsources/ws 中。

如果选择这些地方ok?如果是这样,我如何使用 maven 创建从 wsdl 到指定文件夹的源?我可以选择源的 java 包名吗?我是不是该 ?然后我应该从源文件中制作一个 jar 文件吗?如何确保生成的源代码可用于编译(在类路径中)?

谢谢你。

4

2 回答 2

2

使用 wsimport 插件有几种方法可以做到这一点,但大多数示例需要更多关于 pom.xml 的知识

Apache CXF是用于此目的的流行免费插件

<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/cxf</sourceRoot>
            <wsdlOptions>
                <wsdlOption>
                    <wsdl>${basedir}/src/main/resources/myService.wsdl</wsdl>
                </wsdlOption>
            </wsdlOptions>
        </configuration>
        <goals>
            <goal>wsdl2java</goal>
        </goals>
    </execution>
</executions>

注意:您绝对可以从生成的源中制作一个 jar,但这将是您 POM 中的一个单独条目

于 2013-04-23T22:17:24.123 回答
0

查看 Apache 的 Axis2——它专门设计用于帮助生成基于 Web 服务的 WSDL 的代码。基本上这正是您正在寻找的:

http://axis.apache.org/axis2/java/core/

编辑:为了扩展,我通常会运行 wsdl2java(.bat 或 .sh) 文件并将其指向 wsdl(在 Web 或本地副本上)并生成其他所有内容。它甚至可以为您将其全部打包成一个罐子(我的首选方法,因为它“更干净”)。您可能不需要进入生成的代码并更改任何内容,您只需将该 jar 添加到您的类路径中,然后像任何其他库一样导入并使用它。

于 2013-04-23T22:22:56.110 回答