2010-08-18 216 views
5

我正在開發glassfish v3上的j2ee應用程序,它將遠程調用部署在jboss 5應用程序服務器上的EJB。爲了這個工作,我的應用程序必須在類路徑中有jboss客戶端jar。 我設法通過打包客戶端jar文件與我的應用程序來做到這一點,但是這會通過aprox 10mb來花費大小,因此上傳應用程序成爲一個問題。glassfish v3 classpath設置

我怎樣才能把這些罐子放在其他地方,讓gf撿起它們,所以我不需要把它們放在我的應用程序中?

回答

1

如果需要,您可以將它們放入服務器的類路徑中。轉到域的lib目錄。

+0

我可以把它們放在其他目錄中,然後告訴gf在那裏查看嗎? – Marko 2010-08-18 13:09:55

1

在您的Glassfish域的domain.xml中,您可以使用java-config標記的classpath-suffix屬性指向應該是該特定域的Glassfish類路徑的一部分的位置。

0

選項1:您可以在使用庫選項的GF3部署期間處理此問題。這就是GF3部署屏幕所說的。

庫JAR文件的逗號分隔列表。通過它們的相對或絕對路徑指定文件庫JAR 文件。指定相對路徑 相對於instance-root/lib/applibs。這些庫按照指定的順序製作成 。

如果您使用命令行進行部署,請使用帶有asadmin命令的--libraries選項。

這可能不是最好的選擇,因爲每次執行un-deploy時都需要照顧它。但是,在重新部署的情況下,應該保留這個設置。

選項2:將它們放在Glassfish的domainname/lib目錄中。在重新啓動後,它會被自動接收並在同一個域中的所有應用中使用。

+0

有人可以提供一個鏈接,指出這些信息的來源嗎?我想閱讀更多。例如,我可以使用-libraries指向一個目錄而不是一個jar嗎? – 2013-11-20 00:39:02

1

對於jar的這是好的,但對於屬性文件它是別的東西。 除非你把它們放在WAR中(這意味着你不能在沒有完全重新部署的情況下更新它們),它往往會變得更加困難。

我試圖把xxx.properties的config文件夾&適應以下的domain.xml線

<java-config debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" system-classpath="${com.sun.aas.instanceRoot}/MY_VALUE" classpath-suffix=""> 
     ... 
</java-config> 

與MY_VALUE採取以下值:

  1. 配置
  2. 配置/
  3. config/xxx.properties

嘗試使用classpath-suffix也沒有幫助。

請求的web應用與以下行來顯示類路徑:

String path = System.getProperty("java.class.path"); 
LOG.info("Classpath is : '" + path + "'."); 

確實顯示該值被拾起......但是屬性文件是永遠不會從類加載器訪問。getResourceAsInputStream()