<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
    謝謝  回復  更多評論   


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲视频精品在线| 亚洲AV女人18毛片水真多| 69成人免费视频| 国产精品亚洲а∨无码播放不卡| 亚洲国产成人久久笫一页 | 最近的中文字幕大全免费8| 亚洲av永久无码嘿嘿嘿| 亚洲成av人片在线观看天堂无码| 国产免费无码一区二区| 亚洲免费福利在线视频| 中文字幕亚洲综合久久菠萝蜜| 在线免费观看你懂的| 美女视频免费看一区二区| 久久亚洲精品人成综合网| 国产又粗又长又硬免费视频| 亚洲一区免费观看| 最好2018中文免费视频| 亚洲区精品久久一区二区三区| 亚洲av成人一区二区三区在线观看 | 国产成人亚洲合集青青草原精品| 国产亚洲精品看片在线观看| 免费无码又黄又爽又刺激| 久久久久久毛片免费看| 亚洲综合精品第一页| 亚洲人成网址在线观看| 亚洲国产精品无码久久久久久曰| 国产高清免费视频| 九九热久久免费视频| 亚洲国产精品无码观看久久| 久久精品国产亚洲AV麻豆网站 | 国产又大又黑又粗免费视频 | 亚洲综合校园春色| 亚洲AV永久精品爱情岛论坛| 免费看小12萝裸体视频国产| 亚洲成年人免费网站| 国产日韩一区二区三免费高清| 日韩亚洲人成网站| 91在线亚洲综合在线| 亚洲福利秒拍一区二区| 国产成人精品日本亚洲| 亚洲一区视频在线播放|