Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat6类加载器:它在读哪个Jar?_Java_Apache_Tomcat_Jar_Classloader - Fatal编程技术网

Java Tomcat6类加载器:它在读哪个Jar?

Java Tomcat6类加载器:它在读哪个Jar?,java,apache,tomcat,jar,classloader,Java,Apache,Tomcat,Jar,Classloader,我有一个巨大的网络应用程序,我必须支持。最近,当我从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.

我有一个巨大的网络应用程序,我必须支持。最近,当我从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)
2014-12-23 18:08:27[taskScheduler-4]TaskUtils$LoggingErrorHandler[ERROR]计划任务中出现意外错误。
java.lang.NoSuchMethodError:javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory;
位于org.apache.cxf.binding.soap.interceptor.ReadHeaderInterceptor$HeadersProcessor。(ReadHeaderInterceptor.java:275)
因此,我认为问题在于Apache类ReadHeaderInterceptor,我的应用程序的代码调用它试图从XMLEventFactory调用newFactory()方法,但找不到该方法,可能是因为它正在读取旧版本的XMLEventFactory

我认为这是因为我的lib文件夹中有一些jar需要删除或添加。问题是我不知道是哪一个。我看到有几个罐子有XMLEventFactory,包括

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

它也是rt.jar中Java6的一部分

那么,在所有这些罐子中,哪一个是它试图读取而没有找到它需要的方法的呢


谢谢。

这是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的更新修复了这个问题


我希望它能有所帮助。

JavaEE应用服务器有一个类加载器的层次结构:引导、应用服务器、应用服务器。如果它在rt.jar中,那么应该首先加载它。该JAR可能位于JVM或应用程序服务器中。检查这些是否与应用程序冲突。