簡體   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