java web專案中classes資料夾下的class和WEB-INF/lib中jar裡的class檔案載入順序

ZZZZW發表於2015-04-22

如果是釋出到weblogic的話,可以在WebContent\WEB-INF\weblogic.xml裡面配置。
參考配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
<container-descriptor>
<!-- 修改JVAV類後不會自動重啟 在debug模式下 修改方法內邏輯也不用重啟,但是改變方法引數等需要重啟才管用 -->
<servlet-reload-check-secs>-1</servlet-reload-check-secs>
<!-- <resource-reload-check-secs>-1</resource-reload-check-secs>
<!-- web-inf/classes裡面優於lib載入 -->
<prefer-web-inf-classes>true</prefer-web-inf-classes> -->
</container-descriptor>
<!-- URL根路徑 -->
<context-root></context-root>
<jsp-descriptor>
<!-- 檢視(除錯)JSP編譯生成的java原始檔 \servers\AdminServer\tmp\_WL_user\webapp\XXX\jsp_servlet\_jsp\_ -->
<keepgenerated>true</keepgenerated>
<!-- 修改JSP後不要重啟服務就自動載入-->
<page-check-seconds>1</page-check-seconds>
</jsp-descriptor>
</weblogic-web-app>

-----------------------------------------------------------------
Tomcat啟動時classloader載入順序 
Tomcat的class載入的優先順序一覽 
1.最先是$JAVA_HOME/jre/lib/ext/下的jar檔案。 
2.環境變數CLASSPATH中的jar和class檔案。 
3.$CATALINA_HOME/common/classes下的class檔案。 
4.$CATALINA_HOME/commons/endorsed下的jar檔案。 
5.$CATALINA_HOME/commons/i18n下的jar檔案。 
6.$CATALINA_HOME/common/lib 下的jar檔案。 
(JDBC驅動之類的jar檔案可以放在這裡,這樣就可以避免在server.xml配置好資料來源卻出現找不到JDBC Driver的情況。) 
7.$CATALINA_HOME/server/classes下的class檔案。 
8.$CATALINA_HOME/server/lib/下的jar檔案。 
9.$CATALINA_BASE/shared/classes 下的class檔案。 
10.$CATALINA_BASE/shared/lib下的jar檔案。 
11.各自具體的webapp /WEB-INF/classes下的class檔案。 
12.各自具體的webapp /WEB-INF/lib下的jar檔案

相關文章