WEB-INF / classes /與WEB-INF / lib / *jar在類(lèi)路徑優(yōu)先級(jí)?
當(dāng)處理從Web應(yīng)用程序的Webappx類(lèi)加載器加載類(lèi)的請(qǐng)求時(shí),該類(lèi)加載器將首先在本地存儲(chǔ)庫(kù)中查找,而不是在查找之前委派。也有例外。屬于JRE基類(lèi)的類(lèi)不能被覆蓋。對(duì)于某些類(lèi)(例如J2SE1.4+中的XML解析器組件),可以使用J2SE 1.4認(rèn)可的功能(請(qǐng)參見(jiàn)上面的通用類(lèi)加載器定義)。最后,任何包含servletAPI類(lèi)的JAR都將被類(lèi)加載器忽略。Tomcat 5中的所有其他類(lèi)裝入器都遵循通常的委托模式。
因此,從Web應(yīng)用程序的角度來(lái)看,類(lèi)或資源的加載按以下順序查找以下存儲(chǔ)庫(kù):
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打包的戰(zhàn)爭(zhēng)包含WEB-INF / classes和WEB-INF / lib / *。jar
在CLASSPATH中哪個(gè)優(yōu)先級(jí)更高?
我問(wèn)的原因是我的應(yīng)用程序使用A.jar,其中包含從AspectJ項(xiàng)目生成的方面;和B.jar,它們將與A.jar的各個(gè)方面交織在一起。編譯項(xiàng)目myapp時(shí),它將生成許多類(lèi),這些類(lèi)將覆蓋B.jar中的相同類(lèi),這些類(lèi)將打包到WEB-INF / classes目錄中。因此,如果tomcat首先加載WEB-INF / lib / *。jar,那么編織方面將不會(huì)生效
相關(guān)文章:
1. node.js - nodejs中把熱request保存下來(lái),使用JSON.stringify(req)報(bào)錯(cuò),請(qǐng)問(wèn)怎么解決?2. javascript - vue-router怎么不能實(shí)現(xiàn)跳轉(zhuǎn)呢3. 老哥們求助啊4. python - 模擬滑動(dòng)驗(yàn)證碼,有源碼,求解5. html5 - angularjs中外部模版加載無(wú)法使用6. 在MySQL中新增字段時(shí),報(bào)錯(cuò)??7. npm鏡像站全新上線8. css3 - 請(qǐng)問(wèn)一下在移動(dòng)端CSS布局布局中通常需要用到哪些元素,屬性?9. java - 安卓電視盒子取得了root權(quán)限但是不能安裝第三方應(yīng)用,請(qǐng)問(wèn)該怎么辦?10. 我的Apache卡在這里不動(dòng)了怎么辦?
