2010-07-16 55 views
1

我想將一些只讀參數(例如RMI註冊表主機和端口)設置爲部署在Glassfish服務器上的Java EE應用程序。通常這樣做的地方是部署描述符,但是我的問題是它被封裝在EAR中,所以我不能在不改變EAR的情況下編輯它。參數化EAR

我需要類似的設置JDBC和JMS資源,但要簡單得多。我可以將配置數據放在數據庫表中,但這似乎是矯枉過正。我可以使用文件資源適配器,但最好能在Glassfish管理控制檯中編輯配置。

有沒有一個標準的方法來做到這一點?當他們依賴於他們需要與之通信的外部節點時,如何測試你的應用程序?我應該在哪裏放置這些參數,以及如何訪問它們?

我最好的猜測是定義外部JNDI資源,但我又把數據放在哪裏?

UPDATE:這是我想的是:

How can I store Java EE configuration parameters outside of an EAR or WAR?

因此問題是:我怎麼在Glassfish的做到這一點?

回答

3

經過幾個小時的谷歌搜索,我找到了答案!這不是微不足道的,但幸運的是非常簡單。那就是:

http://www.mentby.com/glassfish/custom-resource-work-when-looking-it-up-but-not-with-injection.html

管理控制檯上創建自定義資源,並添加屬性叫做「價值」。就像這樣:

alt text http://img231.imageshack.us/img231/8237/jndicustomresource.png

然後訪問該名稱/值從EJB非常簡單:

try { 
    InitialContext ic = new InitialContext(); 
    String value = (String) ic.lookup("MyCustomResource"); 
    System.out.println("MyCustomResource = " + value); 
} catch (NamingException e) { 
    e.printStackTrace(); 
} 

它打印

信息:MyCustomResource =從MyCustomResource一個大大的擁抱!