<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    銀色幻想

    常用鏈接

    統(tǒng)計(jì)

    積分與排名

    學(xué)習(xí)交流

    最新評(píng)論

    tomcat加載順序

    1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。

    2.環(huán)境變量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驅(qū)動(dòng)之類的jar文件可以放在這里,這樣就可以避免在server.xml配置好數(shù)據(jù)源卻出現(xiàn)找不到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文件。

    class的搜尋順序如下:
    -------------
    Bootstrap?classes?of?your?JVM?
    System?class?loader?classses?(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?
    --------------


    因此放在不同webapp里的class文件,會(huì)被classloader加載成不同的實(shí)例。
    例如假設(shè)下面兩個(gè)不同內(nèi)容的class。分別放在不同的webapp的class目錄下。

    package?com.lizongbo;
    public?class?TestClass?{
    ??private?String?NAME="lizongbo";
    }

    package?com.lizongbo;
    public?class?TestClass?{
    ??private?String?NAME="li_zongbo";
    }

    在不同的webapp得到的com.lizongbo.NAME結(jié)果是不同的,且互不影響。

    但是注意,以下包名開(kāi)頭的class例外:
    javax.*?
    org.xml.sax.*?
    org.w3c.dom.*?
    org.apache.xerces.*?
    org.apache.xalan.*?

    ps,注意.在各個(gè)jar中的\META-INF\MAINFEST.MF文件里Class-Path鍵值對(duì),也會(huì)提供jar的加載優(yōu)先順序。
    例如某jar的MAINFEST.MF內(nèi)容如下:
    Manifest-Version:?1.0
    Created-By:?lizongbo
    Class-Path:?commons-beanutils.jar
    Class-Path:?commons-collections.jar
    Class-Path:?commons-dbcp.jar
    Class-Path:?commons-digester.jar
    Class-Path:?commons-logging.jar
    Class-Path:?commons-pool.jar
    Class-Path:?commons-services.jar
    Class-Path:?commons-validator.jar
    Class-Path:?jakarta-oro.jar
    Main-Class:?com.lizongbo.MyTestClass


    那么在加載這個(gè)jar的時(shí)候,會(huì)先在此jar所在目錄下依次先加載commons-beanutils.jar,commons-collections.jar。。。等jar文件。

    在不同的地方放置jar和class可能會(huì)產(chǎn)生意想不到的后果,,尤其是不同版本的jar文件,因此在實(shí)際應(yīng)用部署web應(yīng)用時(shí)候要特別留心.


    例如?使用javamail常見(jiàn)的一個(gè)出錯(cuò)信息:
    javax.mail.NoSuchProviderException:?No?provider?for?smtp
    其真實(shí)原因就很可能如下:
    在不同的加載jar的目錄下放置了不同版本的mail.jar,比如一個(gè)是javamail1.3.1的mail.jar
    在D:\jakarta-tomcat-5.5.8\common\lib下,而另外一個(gè)是javamail1.3.2的mail.jar在
    D:\jakarta-tomcat-5.5.8\webapps\lizongbo\WEB-INF/lib下,
    那么lizongbo這個(gè)webapp中使用到j(luò)avamail進(jìn)行郵件發(fā)送的時(shí)候,便會(huì)出現(xiàn)No?provider?for?smtp的錯(cuò)誤。

    posted on 2006-03-25 16:42 銀色幻想 閱讀(371) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费在线观看的网站| 日本免费在线中文字幕| 最新中文字幕电影免费观看| 亚洲精品日韩专区silk| 6080午夜一级毛片免费看| 老汉色老汉首页a亚洲| 在线美女免费观看网站h| 亚洲视频免费在线看| 2019中文字幕免费电影在线播放| 久久亚洲国产成人精品性色| 亚洲免费观看在线视频| 中文文字幕文字幕亚洲色| 在线播放免费播放av片| 国产亚洲精品美女| 国产亚洲欧洲Aⅴ综合一区 | 无码不卡亚洲成?人片| 免费一级全黄少妇性色生活片 | 日韩精品亚洲aⅴ在线影院| 国产精品无码永久免费888| 亚洲精品无码专区在线在线播放| 波多野结衣免费一区视频 | 免费国产草莓视频在线观看黄| 亚洲毛片av日韩av无码| 国产无遮挡裸体免费视频在线观看| 久久亚洲国产成人亚| 成人免费一级毛片在线播放视频 | 91福利免费网站在线观看| 亚洲AV日韩AV天堂久久| 国产又黄又爽又猛免费app| 亚洲国产成人手机在线观看| 亚洲午夜福利精品无码| 99精品视频在线视频免费观看| 亚洲av一本岛在线播放| 日韩精品成人亚洲专区| 免费视频成人手机在线观看网址| 亚洲国产精品成人精品软件| 亚洲 另类 无码 在线| 一个人免费日韩不卡视频| 亚洲最大的成人网站| 国产亚洲精久久久久久无码| 成人免费一级毛片在线播放视频|