WEB-INF / classes /與WEB-INF / lib / *jar在類路徑優先級?
當處理從Web應用程序的Webappx類加載器加載類的請求時,該類加載器將首先在本地存儲庫中查找,而不是在查找之前委派。也有例外。屬于JRE基類的類不能被覆蓋。對于某些類(例如J2SE1.4+中的XML解析器組件),可以使用J2SE 1.4認可的功能(請參見上面的通用類加載器定義)。最后,任何包含servletAPI類的JAR都將被類加載器忽略。Tomcat 5中的所有其他類裝入器都遵循通常的委托模式。
因此,從Web應用程序的角度來看,類或資源的加載按以下順序查找以下存儲庫:
Bootstrap classes of your JVMSystem class loader classes (described above)/WEB-INF/classes of your web application/WEB-INF/lib/*.jar of your web application$CATALINA_HOME/common/classes$CATALINA_HOME/common/endorsed/*.jar$CATALINA_HOME/common/i18n/*.jar$CATALINA_HOME/common/lib/*.jar$CATALINA_BASE/shared/classes$CATALINA_BASE/shared/lib/*.jar
因此,在WEB-INF / lib之前先搜索WEB-INF / classs
參考:http ://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html
解決方法為tomcat Webapp打包的戰爭包含WEB-INF / classes和WEB-INF / lib / *。jar
在CLASSPATH中哪個優先級更高?
我問的原因是我的應用程序使用A.jar,其中包含從AspectJ項目生成的方面;和B.jar,它們將與A.jar的各個方面交織在一起。編譯項目myapp時,它將生成許多類,這些類將覆蓋B.jar中的相同類,這些類將打包到WEB-INF / classes目錄中。因此,如果tomcat首先加載WEB-INF / lib / *。jar,那么編織方面將不會生效
相關文章:
1. javascript - 關于<a>元素與<input>元素的JS事件運行問題2. css3 - 純css實現點擊特效3. MySQL中的enum類型有什么優點?4. java - 為什么第一個線程已經釋放了鎖,第二個線程卻不行?5. mysql - 記得以前在哪里看過一個估算時間的網站6. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。7. 大家好,我想請問一下怎么做搜索欄能夠搜索到自己網站的內容。8. python - 啟動Eric6時報錯:’qscintilla_zh_CN’ could not be loaded9. html - vue項目中用到了elementUI問題10. mysql - 查詢字段做了索引為什么不起效,還有查詢一個月的時候數據都是全部出來的,如果分拆3次的話就沒問題,為什么呢。
