我已經使用Netbeans 7創建了一個JSF2項目,併成功將它部署在Glassfish 3.1上。 儘管ear文件已經增長得相當大(6.5mb),但它大部分都是由外部jar文件(如apache commons,solrj,primefaces和pdfrenderer等)複製到相應的war/ejb文件中。Glassfish中的外部庫的位置
我的問題是:我怎樣才能避免這種情況,並使我的耳朵文件更小 - 它應該只包含我創建的東西,外部庫只應該在服務器上部署一次。
我在網上搜索了這個答案,我發現的唯一的東西是將外部jar文件放在glassfish安裝目錄下的'domains/domain1/lib'或'domains/domain1/lib/ext'下並取消選中Netbeans項目庫設置中的'Package'標誌,但目前爲止還沒有工作(我總是得到ClassNotFoundExceptions)。
我是否需要做別的事情,在某處調整類路徑設置,或者如何實現此目的?有沒有人有辦法解決嗎?
更新:好的,我發現這隻發生在Netbeans(它的一臺運行64位Windows 7的筆記本電腦)的本地Glassfish安裝上。在我的遠程Linux機器上,它按預期工作,即我能夠將所有外部庫放到'domains/domain1/lib'中 - 我的ear文件現在只有〜700k :) 我會在我的Mac和另一個Windows 7盒也看,這是否是一個操作系統相關的問題或別的東西。
對於參考,這裏已經回答了類似的問題:https://stackoverflow.com/questions/12219788/managing-shared-libraries-in-glassfish-server-open-source-edition-3-1-2 –