【问题标题】:Error injecting: org.jvnet.mjiip.v_2.XJC2Mojo java.lang.NoClassDefFoundError: com/sun/xml/bind/api/ErrorListener错误注入:org.jvnet.mjiip.v_2.XJC2Mojo java.lang.NoClassDefFoundError: com/sun/xml/bind/api/ErrorListener
【发布时间】:2015-11-20 00:26:01
【问题描述】:

我正在使用 maven 将我的 WSDL 文件转换为 Java 类,但是当我提供以下 Jar 时:-org.jvnet.jaxb2.maven2--->maven-jaxb2-plugin 版本 0.8.3/0.12.3 但我收到以下错误

    [INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building SOAPSpring 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.glassfish.jaxb:jaxb-runtime:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.glassfish.jaxb:jaxb-xjc:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO] 
[INFO] --- maven-jaxb2-plugin:0.12.3:generate (generate) @ SOAPSpring ---
[WARNING] Error injecting: org.jvnet.mjiip.v_2.XJC2Mojo
java.lang.NoClassDefFoundError: com/sun/xml/bind/api/ErrorListener
    at java.lang.ClassLoader.defineClass1(Native Method)

我的 POM 文件看起来像 ....

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SOAPSpring</groupId>
<artifactId>SOAPSpring</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>SOAPSpring</name>
<description>SOAPSpring</description>

<properties>
    <jaxb2.plugin.version>0.8.3</jaxb2.plugin.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
        <version>${jaxb2.plugin.version}</version>
    </dependency>
    <!-- <dependency>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin-core</artifactId>
        <version>0.12.3</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
        <version>2.2.8</version>
    </dependency> -->
</dependencies>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>${jaxb2.plugin.version}</version>
            <executions>
                <execution>
                    <id>generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <packageName>com.exide.pensionWSDL</packageName>
                <wsdl>true</wsdl>
                <xmlschema>false</xmlschema>
                <schemaFiles>pension.wsdl</schemaFiles>
                <schemaDirectory>${project.basedir}/src/main/resources
                </schemaDirectory>
                <outputDirectory>${project.basedir}/src/main/java</outputDirectory>
                <clearOutputDir>true</clearOutputDir>
            </configuration>
        </plugin>
    </plugins>
</build>

【问题讨论】:

标签: java spring-mvc maven-3 pom.xml


【解决方案1】:

我在使用 JRE 而不是 JDK 时遇到了同样的错误。 我建议您确保使用 JDK。

问候,

【讨论】:

    【解决方案2】:

    我遇到了同样的错误,根据 Aurélien Pupier 的建议,我确实检查了我的 java 版本,但我的 $JAVA_HOME 是空的,并且“java -version”命令显示的版本是 Java 11 而不是 jdk 1.8。 所以我搜索了 jdk 1.8 版的位置,并使用上面的链接在 $JAVA_HOME 变量中注册了它: enter link description here

    【讨论】:

      【解决方案3】:

      这是由于不兼容,也许您使用的 JDK 与您想象的不同。

      如果您使用的是 Mac,请将您的 JDK 更改为 1.8:

      export JAVA_HOME=`/usr/libexec/java_home -v 1.8` 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-16
        • 2015-10-12
        • 1970-01-01
        • 2013-08-07
        • 2014-06-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多