我收到异常,但这不是代码问题,而是设置/依赖问题。
我有一台工作和家用电脑。项目文件通过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 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)
......
我的项目库/提供的stax2-api.jar和stax-api.jar。我有VPN工作,看看项目设置,看不出任何差异。
我如何找出两台机器之间的区别,以使代码在家工作?
答案 0 :(得分:0)
我不知道出了什么问题,但重新安装较新版本的JDK解决了这个问题。
答案 1 :(得分:0)
这是因为存在冲突的jar文件具有相同的类但实现不同(考虑不同的版本)。尝试逐个删除所有jar,直到您停止接收此错误(目标XML解析器库 - jaxws-rt ....等)。
答案 2 :(得分:0)
就我而言,在几乎完全相同的情况下(尽管在Windows和Netbeans 8.1上),罪魁祸首最终是我正在使用的JDK平台将Metro / WSIT JAX-WS实现放在%JAVA_HOME%\ jre中的事实\ lib \ endorsed文件夹,而我尝试运行的项目正在使用Apache CXF JAX-WS实现,因此,即使我在JAR中包括了那些依赖关系,诸如STAX之类的某些依赖关系也被该支持文件夹中的库所覆盖。 / p>
我能够在调试和检查错误之前的类加载过程的同时,跟踪向JVM提供的-verbose:class选项。欢呼。
答案 3 :(得分:0)
我也遇到了同样的问题,上面的帖子至少帮助我解决了错误并理解了这个错误。
经过一些分析。我刚刚升级了Jaws-rt Jar版本,解决了我的问题。
当我在使用的maven依赖项下面使用Jaws-rt jar时。
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.3.2</version>
</dependency>