“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/jvnet/staxex/XMLStreamReaderEx
我遇到了一个异常,但这不是代码问题,而是设置/依赖项问题 我有一台工作和家庭电脑。项目文件通过OneDrive同步。这两台计算机都运行Mac OSX 10.11.4、jdk1.8.0_66.jdk和IntelliJ IDEA 2016.1.1 代码在我的工作中起作用,但在家中我遇到了一个例外:“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/jvnet/staxex/XMLStreamReaderEx,java,intellij-idea,Java,Intellij Idea,我遇到了一个异常,但这不是代码问题,而是设置/依赖项问题 我有一台工作和家庭电脑。项目文件通过OneDrive同步。这两台计算机都运行Mac OSX 10.11.4、jdk1.8.0_66.jdk和IntelliJ IDEA 2016.1.1 代码在我的工作中起作用,但在家中我遇到了一个例外: Exception in thread "main" java.lang.NoClassDefFoundError: org/jvnet/staxex/XMLStreamReaderEx at c
Exception in thread "main" java.lang.NoClassDefFoundError: org/jvnet/staxex/XMLStreamReaderEx
at com.sun.xml.stream.buffer.stax.StreamReaderBufferCreator.storeElementAndChildren(StreamReaderBufferCreator.java:195)
at com.sun.xml.stream.buffer.stax.StreamReaderBufferCreator.storeDocumentAndChildren(StreamReaderBufferCreator.java:179)
at com.sun.xml.stream.buffer.stax.StreamReaderBufferCreator.store(StreamReaderBufferCreator.java:160)
at com.sun.xml.stream.buffer.stax.StreamReaderBufferCreator.create(StreamReaderBufferCreator.java:103)
at com.sun.xml.stream.buffer.MutableXMLStreamBuffer.createFromXMLStreamReader(MutableXMLStreamBuffer.java:134)
at com.sun.xml.stream.buffer.XMLStreamBuffer.createNewBufferFromXMLStreamReader(XMLStreamBuffer.java:419)
at com.sun.xml.ws.api.addressing.WSEndpointReference.<init>(WSEndpointReference.java:183)
at com.sun.xml.ws.api.addressing.WSEndpointReference.<init>(WSEndpointReference.java:175)
at com.sun.xml.ws.api.addressing.AddressingVersion.<init>(AddressingVersion.java:443)
at com.sun.xml.ws.api.addressing.AddressingVersion.<init>(AddressingVersion.java:72)
at com.sun.xml.ws.api.addressing.AddressingVersion$1.<init>(AddressingVersion.java:74)
at com.sun.xml.ws.api.addressing.AddressingVersion.<clinit>(AddressingVersion.java:74)
at com.sun.xml.ws.security.addressing.policy.WsawAddressingPrefixMapper.<clinit>(WsawAddressingPrefixMapper.java:63)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
......
线程“main”java.lang.NoClassDefFoundError中的异常:org/jvnet/staxex/XMLStreamReaderEx
位于com.sun.xml.stream.buffer.stax.StreamReaderBufferCreator.storeElementAndChildren(StreamReaderBufferCreator.java:195)
位于com.sun.xml.stream.buffer.stax.StreamReaderBufferCreator.storeDocumentAndChildren(StreamReaderBufferCreator.java:179)
位于com.sun.xml.stream.buffer.stax.StreamReaderBufferCreator.store(StreamReaderBufferCreator.java:160)
位于com.sun.xml.stream.buffer.stax.StreamReaderBufferCreator.create(StreamReaderBufferCreator.java:103)
在com.sun.xml.stream.buffer.MutableXMLStreamBuffer.createFromXMLStreamReader(MutableXMLStreamBuffer.java:134)上
位于com.sun.xml.stream.buffer.XMLStreamBuffer.createNewBufferFromXMLStreamReader(XMLStreamBuffer.java:419)
位于com.sun.xml.ws.api.addressing.WSEndpointReference.(WSEndpointReference.java:183)
位于com.sun.xml.ws.api.addressing.WSEndpointReference.(WSEndpointReference.java:175)
在com.sun.xml.ws.api.addressing.AddressingVersion.(AddressingVersion.java:443)
位于com.sun.xml.ws.api.addressing.AddressingVersion.(AddressingVersion.java:72)
位于com.sun.xml.ws.api.addressing.AddressingVersion$1。(AddressingVersion.java:74)
位于com.sun.xml.ws.api.addressing.AddressingVersion.(AddressingVersion.java:74)
位于com.sun.xml.ws.security.addressing.policy.WsawAddressingPrefixMapper。(WsawAddressingPrefixMapper.java:63)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:348)
......
我在项目的库/提供中有stax2-api.jar和stax-api.jar。我已经准备好工作,并且查看了项目设置,没有发现任何差异
我怎样才能找出这两台机器之间的区别,让代码在家里工作?我不知道出了什么问题,但重新安装新版本的JDK解决了这个问题。我不知道出了什么问题,但是重新安装JDK的新版本解决了这个问题。发生这种情况是因为存在具有相同类但不同实现的冲突jar文件(请考虑不同的版本)。尝试逐个删除所有jar,直到您停止接收此错误为止(目标XML解析器库-jaxws rt…等)。发生这种情况是因为存在具有相同类但不同实现的冲突jar文件(请考虑不同版本)。尝试一个接一个地删除所有JAR,直到您停止接收此错误为止(目标XML解析器库-jaxws rt…等等)。在我的例子中,使用几乎完全相同的场景(尽管在Windows和Netbeans 8.1上),罪魁祸首最终是我使用的JDK平台在%JAVA_HOME%\jre\lib\annowed文件夹中有Metro/WSIT JAX-WS实现,而我试图运行的项目使用的是Apache CXF JAX-WS实现,因此一些依赖项(如STAX)被annowed文件夹中的库覆盖,即使我在JAR中包含了这些依赖项
在错误发生前调试和检查类加载过程时,我能够将-verbose:class选项跟踪到JVM。干杯。在我的例子中,几乎完全相同的场景(尽管是在Windows和Netbeans 8.1上),最终罪魁祸首是我使用的JDK平台在%JAVA\u HOME%\jre\lib\approved文件夹中有Metro/WSIT JAX-WS实现,而我尝试运行的项目使用的是Apache CXF JAX-WS实现,因此,一些依赖项(如STAX)被认可文件夹中的库覆盖,即使我在JAR中包含了这些依赖项
在错误发生前调试和检查类加载过程时,我能够将-verbose:class选项跟踪到JVM。干杯。我也有同样的问题,上面的帖子至少帮助我接近错误并理解它 经过一些分析。我刚刚升级了Jaws-rt-Jar版本,它解决了我的问题 当我在maven依赖项下使用Jaws rt jar时,我使用了
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.3.2</version>
</dependency>
com.sun.xml.ws
jaxws-rt
2.3.2
我也有同样的问题,上面的帖子至少帮助我接近错误并理解它
经过一些分析。我刚刚升级了Jaws-rt-Jar版本,它解决了我的问题
当我在maven依赖项下使用Jaws rt jar时,我使用了
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.3.2</version>
</dependency>
com.sun.xml.ws
jaxws-rt
2.3.2
仅使用stax2-api.jar。删除stax-api.jar的依赖项。希望它能对您有所帮助。感谢您的回复,这不起作用,而且该建议也没有解释为什么它在@work而不是@home中起作用。您是否在pom.xml中使用apache commons exec jar?定位pom.xml不会显示项目中的任何文件或两台计算机上的java目录。您的系统中是否都添加了JRE_home和JDK_home?请查收。JRE_主页应包括/bin。请仅使用tryUse stax2-api.jar。删除stax-api.jar的依赖项。希望它能对您有所帮助。感谢您的回复,这不起作用,而且该建议也没有解释为什么它在@work而不是@home中起作用。您是否在pom.xml中使用apache commons exec jar?定位pom.xml不会显示项目中的任何文件或两台计算机上的java目录。您的系统中是否都添加了JRE_home和JDK_home?请查收。JRE_主页应包括/bin。请试一试