繁体   English   中英

Tomcat 6 Classloader:正在读取哪个Jar?

[英]Tomcat 6 Classloader : Which Jar is it reading?

我有一个必须支持的庞大的Web应用程序。 最近,当我从SVN下载最新的源并尝试在Tomcat 6上本地运行时,我从应用程序运行的后台批处理作业之一中收到以下错误...

2014-12-23 18:08:27 [taskScheduler-4] TaskUtils$LoggingErrorHandler [ERROR] Unexpected error occurred in scheduled task.
java.lang.NoSuchMethodError: javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory;
at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor$HeadersProcessor.<clinit>(ReadHeadersInterceptor.java:275)

因此,我认为问题出在我的应用程序代码调用的Apache类ReadHeadersInterceptor试图从XMLEventFactory调用newFactory()方法,但没有找到该方法,可能是因为它正在读取XMLEventFactory的旧版本。

我认为发生这种情况是因为我的lib文件夹中有一些JAR需要删除或添加。 问题是我不知道哪一个。 我看到有几个包含XMLEventFactory的JAR,包括..

woodstox-core-asl-4.2.0 stax2-api-3.1.1

它也是rt.jar中Java 6的一部分。

因此,在所有这些Jar中,它是试图读取哪一个而找不到所需的方法?

谢谢。

这是特定版本的JDK / JRE 1.6(我的意思是更新)的问题。 看起来很奇怪,但是JDK API针对特定的主要版本进行了更改。

请通过以下链接抢劫。 您可以在那里看到,从1.6.0.17版本更改为1.6.0.18版本后,新方法已添加到XMLEventFactory类上。

可能您的JRE版本要少一些,谢谢1.6.0.18。 我在Apache CXF和动态代理中遇到了相同的问题。 将JRE 1.6.0.14更新到1.6.0.19修复了此问题。

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM