當我運行tomcat的戰爭部署,我得到: NoClassDefFoundError的:組織/阿帕奇/公/收藏/地圖/ LRUMapSpring + Hibernate的+ Tomcat的依賴問題
Invocation of init method failed; nested exception is
java.lang.NoClassDefFoundError:
org/apache/commons/collections/map/LRUMap
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
~[spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
什麼奇怪的是,我在我的WEB-INF lib文件夾中得到了commons-collections-2.1.jar
(我什至試過3.1)。
編輯: 我沒有將commons-collections
從WEB-INF/lib
複製到Tomcat lib
,它似乎工作。但是我不能在生產服務器上這樣做,爲什麼不是我的WEB-INF/lib
版本?
可能是一個類加載器問題。 (Yuck!)祝你好運! –
如果jar在tomcat/lib中工作,但不在WEB-INF/lib中,則可能需要重新進行適當的重新啓動。錯誤是NoClassDefFound,它與ClassNotFound不同。如上所述,類加載器可能會被別的東西(jar或類的另一個版本)所困惑。也許LRUMap也是tomcat-jar的一部分? – wemu
看起來像一個使用org/apache/commons/collections/map/LRUMap的類,它由層次結構中比Webapp Class Loader更高的類加載器加載。請參閱 http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html。 – Potejciak