我有一个巨大的web应用程序,我必须支持它。最近,当我从SVN下载最新的源代码并尝试在Tomcat6上本地运行它时,我从该应用程序运行的一个后台批处理作业中得到以下错误...
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,包括..
woodstox-core-asl-4.2.0 stax2-api-3.1.1
它也是rt.jar中Java6的一部分。
那么,在所有这些Jars中,它试图读取的是哪一个,但没有找到它需要的方法呢?
谢谢。
发布于 2015-02-26 21:57:00
这是JDK/JRE1.6的特定版本(我指的是更新)的问题。这看起来可能很奇怪,但JDK API因特定的主要版本而有所不同。
请在以下link中抢先一试。您可以看到,从版本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的更新修复了该问题。
我希望它能帮上忙。
https://stackoverflow.com/questions/27663472
复制相似问题