7

我正在尝试使用 wsimport 从 WSDL 生成类。

我正在使用 Netbeans (7.1) 生成的 Maven POP,但是当我尝试构建它时得到以下输出:

[jaxws:wsimport]
Processing: C:\Users\...\src\wsdl\ShipService_v5.wsdl
jaxws:wsimport args: [-s, C:\Users\...\target\generated-sources\jaxws-wsimport, -d, C:\Users\...\target\classes, -verbose, -catalog, C:\Users\...\src\jax-ws-catalog.xml, -wsdllocation, file:/C:/Users/.../Desktop/ShipService_v5.wsdl, -extension, -Xnocompile, C:\Users\...\src\wsdl\ShipService_v5.wsdl]
parsing WSDL...

------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 1.361s
Finished at: Mon Apr 09 12:51:52 BST 2012
Final Memory: 4M/120M
------------------------------------------------------------------------
Failed to execute goal org.codehaus.mojo:jaxws-maven-plugin:1.10:wsimport (wsimport-generate-ShipService_v5) on project RPDataStreams: Error executing: wsimport [-s, C:\Users\...\target\generated-sources\jaxws-wsimport, -d, C:\Users\...\target\classes, -verbose, -catalog, C:\Users\...\src\jax-ws-catalog.xml, -wsdllocation, file:/C:/Users/.../Desktop/ShipService_v5.wsdl, -extension, -Xnocompile, C:\Users\...\src\wsdl\ShipService_v5.wsdl] -> [Help 1]

我的 POM 中的插件部分是:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>1.10</version>
    <executions>
        <execution>
            <goals>
                <goal>wsimport</goal>
            </goals>
            <configuration>
                <wsdlFiles>
                    <wsdlFile>ShipService_v5.wsdl</wsdlFile>
                </wsdlFiles>
                <wsdlLocation>file:/C:/Users/.../Desktop/ShipService_v5.wsdl</wsdlLocation>
                <staleFile>${project.build.directory}/jaxws/stale/ShipService_v5.stale</staleFile>
            </configuration>
            <id>wsimport-generate-ShipService_v5</id>
            <phase>generate-sources</phase>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>webservices-api</artifactId>
            <version>1.4</version>
        </dependency>
    </dependencies>
    <configuration>
        <sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir>
        <xnocompile>true</xnocompile>
        <verbose>true</verbose>
        <extension>true</extension>
        <catalog>${basedir}/src/jax-ws-catalog.xml</catalog>
    </configuration>
</plugin>

我知道我正在使用的 WSDL 没有任何问题,我也使用来自http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl的 WSDL 进行了尝试。

我尝试从 Netbeans 和 Ubuntu 服务器的命令行构建这个项目,两次都得到相同的结果。

我现在已将其范围缩小到对 jconfig 的依赖。如果我注释掉下面的块,则 Web 服务源构建成功。

    <dependency>
        <groupId>org.jconfig</groupId>
        <artifactId>jconfig</artifactId>
        <version>2.9</version>
        <exclusions>
            <exclusion>
                <artifactId>jmxri</artifactId>
                <groupId>com.sun.jmx</groupId>
            </exclusion>
        </exclusions>
    </dependency>

谢谢您的帮助。

4

3 回答 3

7

你应该使用:

<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.2</version>

这是最新版本(请注意插件已移至 org.jvnet.jax-ws-commons)

编辑:

您可以尝试有选择地排除 jconfig 构建依赖项。完整列表如下所示:

<dependency>
    <groupId>org.jconfig</groupId>
    <artifactId>jconfig</artifactId>
    <version>2.9</version>
    <exclusions>
        <exclusion>
            <groupId>com.sun.jmx</groupId>
            <artifactId>jmxri</artifactId>
        </exclusion>
        <exclusion>
            <groupId>javax.xml.parsers</groupId>
            <artifactId>jaxp-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>crimson</groupId>
            <artifactId>crimson</artifactId>
        </exclusion>
    </exclusions>
</dependency>

编辑:你真的需要jconfig吗?如果没有,请摆脱它。

于 2012-04-09T20:08:24.220 回答
2

在项目运行配置的 JRE 选项卡中,选择备用 JRE 并添加已安装 JDK 的路径。对我来说,这样做解决了这个问题。

于 2015-12-03T08:59:43.247 回答
2

您可能使用的是 JRE 而不是 JDK。

请尝试更改 JDK 并再次运行 maven build。

将 JRE 更改为 JDK - http://www.gamefromscratch.com/post/2011/11/15/Telling-Eclipse-to-use-the-JDK-instead-of-JRE.aspx

于 2015-07-21T07:08:50.340 回答