我想将一些只读参数(例如,RMI注册表主机和端口)设置为部署在Glassfish服务器上的Java EE应用程序。通常的地方是部署描述符,但我的问题是它被打包在EAR中,因此我无法在不更改EAR的情况下对其进行编辑。
我需要类似于设置JDBC和JMS资源的东西,但更简单。我可以将配置数据放在数据库表中,但这似乎有点过分。我可以使用文件资源适配器,但最好能在Glassfish管理控制台中编辑配置。
有没有标准的方法来做到这一点?当您的应用程序依赖于需要与之通信的外部节点时,如何测试它们?我应该在哪里放置这些参数以及如何访问它们?
我最好的猜测是定义外部JNDI资源,但是我在哪里放置数据?
更新:这就是我的想法:
How can I store Java EE configuration parameters outside of an EAR or WAR?
所以问题是:我如何在 Glassfish ?
中执行此操作答案 0 :(得分:3)
经过几个小时的谷歌搜索,我找到了答案!这不是微不足道的,但幸运的是非常容易。这是:
http://www.mentby.com/glassfish/custom-resource-work-when-looking-it-up-but-not-with-injection.html
在管理控制台上创建自定义资源,并添加名为“value”的属性。像这样:
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();
}
打印
INFO:MyCustomResource = MyCustomResource的一个大拥抱!