2

从昨天开始我就被这个问题困住了。我在 Windows 上使用 Maven 2:

Apache Maven 2.2.1 (r801777; 2009-08-06 20:16:01+0100)

在我的 POM 中,我使用插件jaxws-maven-plugin如下:

    <plugin>
        <groupId>org.jvnet.jax-ws-commons</groupId>
        <artifactId>jaxws-maven-plugin</artifactId>
        <version>2.2</version>
        <executions>
            <execution>
                <goals>
                    <goal>wsimport</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <wsdlFiles>
                <wsdlFile>${basedir}/src/main/resources/MyService.wsdl
                </wsdlFile>
            </wsdlFiles>
            <packageName>my.package.name</packageName>
        </configuration>
    </plugin>

当我运行时mvn compile,出现以下错误:

[INFO] jaxws:wsimport args: [-keep, -s, D:\myService\target\generated-sources\wsimport, -Xnocompile, -p, my.service.name, file:/D:/myService/src/main/resources/MyService.wsdl]
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error executing: wsimport [-keep, -s, D:\myService\target\generated-sources\wsimport, -Xnocompile, -p, my.service.name, file:/D:/myService/src/main/resources/MyService.wsdl]

Embedded error: com/sun/tools/xjc/api/ErrorListener
com.sun.tools.xjc.api.ErrorListener

我试过了 :

  • MAVEN_OPT添加具有值的 Windows 环境变量-Xmx768M -Xms768M -XX:PermSize=256m

  • 启动wsimport自己,它正在工作:

    wsimport -keep -s D:\myService\target\generated-sources\wsimport -Xnocompile -p my.service.name file:/D:/myService/src/main/resources/MyService.wsdl
    

所以任何人都知道这可能意味着什么:

Embedded error: com/sun/tools/xjc/api/ErrorListener

com.sun.tools.xjc.api.ErrorListener
4

2 回答 2

5

的情况下

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/xjc/api/ErrorListener
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.getConstructor(Unknown Source)
    at org.codehaus.mojo.jaxws.Invoker.main(Invoker.java:72)
Caused by: java.lang.ClassNotFoundException: com.sun.tools.xjc.api.ErrorListener
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 16 more

可能是您使用 JRE 而不是 JDK 作为项目(或默认)Eclipse JRE

参考:https ://github.com/spring-guides/gs-sumption-web-service/issues/15#issuecomment-314018799

于 2019-03-28T15:27:09.890 回答
1

为 Maven 添加详细日志记录帮助了我:mvn -X compile.

我实际上有一个:

Caused by: java.lang.NoClassDefFoundError: com/sun/tools/xjc/api/ErrorListener
        at java.lang.ClassLoader.defineClass1(Native Method)

这是因为我的依赖项之一不在类路径中。

于 2013-09-12T16:15:40.847 回答