1

我想为部署在 Glassfish 服务器上的 Java EE 应用程序设置一些只读参数(例如 RMI 注册表主机和端口)。执行此操作的通常位置是部署描述符,但我的问题是它被打包在 EAR 中,所以我无法在不更改 EAR 的情况下对其进行编辑。

我需要类似于设置 JDBC 和 JMS 资源的东西,但要简单得多。我可以将配置数据放在数据库表中,但这似乎有点过头了。我可以使用文件资源适配器,但最好能在 Glassfish 管理控制台中编辑配置。

有没有标准的方法来做到这一点?当应用程序依赖于需要与之通信的外部节点时,您如何测试它们?我应该把这些参数放在哪里以及如何访问它们?

我最好的猜测是定义外部 JNDI 资源,但是我应该把数据放在哪里呢?

更新:这就是我的想法:

如何在 EAR 或 WAR 之外存储 Java EE 配置参数?

所以问题是:我如何在Glassfish中做到这一点?

4

1 回答 1

3

经过几个小时的谷歌搜索,我找到了答案!这不是微不足道的,但幸运的是非常容易。这里是:

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

在管理控制台上创建一个自定义资源,并添加一个名为 "value" 的属性。像这样:

替代文字 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 的一个大大的拥抱!

于 2010-07-16T08:18:52.807 回答