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

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

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

    Java, Only Java!

    統計

    留言簿(20)

    積分與排名

    好友空間

    文檔技巧

    閱讀排行榜

    評論排行榜

    如何配置Apusic應用服務器的類裝載結構,實現jar包的類,訪問classes中的類(轉自王東明的文檔)

    作者:王東明上次修改時間: 2007-11-09 11:01

    Apusic應用服務器目前在默認情況下是三層類裝在體系(具體介紹可參考知識庫中的相關文檔)。但是,默認情況下,因為用戶的應用部署并不是一個理想狀況,他的一個相同的類,經常部署到jar包中,同時又在classes中存在,因此三層類裝載體系下,經常出現ClassNotFound的情況。

    典型的情況是:在很多的用戶代碼中,由于用戶代碼的設計考量不完善,經常出現部署在WEB-INF/lib目錄下jar中的類使用自身 ClassLoader裝載WEB-INF/classes下的類,此時容出現ClassNotFound異常,而這種情況在很多客戶應用中是相當普遍的。

    但是,這種情況,在其他的應用服務器中卻很少出現異常,據此,我們有一個參數可以對Apusic應用服務器的類裝在體系進行設置,這樣,可以很大程度上避免出現ClassNotFound的問題:

    ServletClassLoader本身不再持有委派ClassLoader的實例,而持有一個delegate實例。所有行為都委派給delegate去完成,delegate有三種:
    ????SeparatedLoaderDelegate 分jsp、WEB-INF/classes和WEB-INF/lib三個層次的類裝載體系
    ????IntegrateLoaderDelegate 分jsp和其他的兩個層次的類裝載體系
    ????SimpleLoaderDelegate 不分層次,所有類由一個ClassLoader裝載


    有兩種方式可以配置delegate的類型。
    ????1、在web.xml中增加ContextInitParameter
    ????<context-param>
    ????????<description>
    ????????</description>
    ????????<param-name>com.apusic.web.ServletClassLoaderDelegate</param-name>
    ????????<param-value>
    ????????????com.apusic.servlet.http.IntegrateLoaderDelegate</param-value>
    ????</context-param>
    ????這樣的配置有效范圍只有當前應用

    ????2、通過VM參數指定 -Dcom.apusic.web.ServletClassLoaderDelegate=com.apusic.servlet.http.IntegrateLoaderDelegate
    ????這個配置,所有的應用都適用
    ????兩種都指定的情況下,以web.xml中定義的為準
    ????沒有任何配置,使用默認的SeparatedLoaderDelegate


    注意,直到本篇文檔發稿為止(20071030),對于資源文件的處理在兩層和一層結構下,如果在jar包和classes都存在該文件的情況下,先讀到是jar包中的資源文件。對于class則是先讀到的是classes中的。



    [楊威補充]:

    一個錯誤的重現:在開源項目tobago中,訪問http://localhost:6888/tobago/faces/overview/toolbar.jsp時會報java.lang.ClassNotFoundException: org.apache.myfaces.tobago.example.demo.actionlistener.SimpleTabChangeListener錯誤。
    錯誤原因:jar包中的TabChangeListenerTag類調用createTabChangeListener時,要訪問classes目錄下的SimpleTabChangeListener類。由于類裝載機制,部署在WEB-INF/lib目錄下jar中的類使用自身ClassLoader 裝載WEB-INF/classes下的類會出現ClassNotFound。

    解決方法的補充:
    Apusic4.x startapusic中添加啟動參數:
    -Dcom.apusic.web.ServletClassLoaderDelegate=com.apusic.servlet.http.IntegrateLoaderDelegate

    Apusic5.1 startapusic中添加啟動參數:
    -Dcom.apusic.web.ServletClassLoaderDelegate=com.apusic.web.container.IntegrateLoaderDelegate

    posted on 2008-03-04 16:52 zYx.Tom 閱讀(1213) 評論(1)  編輯  收藏

    評論

    # re: 如何配置Apusic應用服務器的類裝載結構,實現jar包的類,訪問classes中的類(轉自王東明的文檔) 2008-03-10 11:52 caven

    我首次用apusic,但在啟動apusic的時候總是不成功,而且license項目也不知道更新是否成功?因為運行窗口只閃了一下就會自動關閉。
    請問大哥這是怎么一回事?
    在線等。QQ54000030
    email:caven110@126.com
    謝謝  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久久久国产成人精品亚洲午夜| 毛片免费全部播放一级| 亚洲综合色婷婷七月丁香| 免费国产黄网站在线看| 免费乱码中文字幕网站| 男女作爱免费网站| 久久亚洲国产成人影院网站| 人与动性xxxxx免费| 国产亚洲精品国看不卡| 国产真人无码作爱免费视频| 亚洲欧洲成人精品香蕉网| 日韩精品久久久久久免费| 久久亚洲AV成人无码| 日韩亚洲国产高清免费视频| 亚洲人成网男女大片在线播放| 成年女人18级毛片毛片免费| 国产亚洲精品仙踪林在线播放| 亚洲Av无码乱码在线播放| 一级成人a做片免费| 亚洲av福利无码无一区二区| 免费国产在线观看不卡| 免费人成视频在线观看免费| 亚洲国产另类久久久精品| 亚洲免费观看在线视频| 日韩亚洲综合精品国产| 国内精品99亚洲免费高清| 免费一级不卡毛片| 亚洲人配人种jizz| 亚洲片一区二区三区| 在线免费观看亚洲| 国产亚洲美女精品久久| 午夜亚洲国产理论秋霞| 无码少妇一区二区浪潮免费| 一级做a爱片特黄在线观看免费看| 亚洲A∨无码一区二区三区| 天天操夜夜操免费视频| a级片免费观看视频| 中国china体内裑精亚洲日本| 免费一级做a爰片久久毛片潮喷| 免费污视频在线观看| 久久亚洲AV成人无码国产最大|