3

I have a set of EJBs and other Java classes which need to be configured differently based on the system environment in which they are deployed: production, test, or lab. The configuration information includes stuff like URLs and database connection information.

We'd like to deploy the same exact product (EAR file) in each environment, and have the code then figure out where it is and what its configuration should be, without having to reach out to each deployment server in each environment to make changes.

What is the best way to configure all these components in a centralized, reliable, easy-to-maintain fashion?

Thanks for your thoughts.

4

3 回答 3

2

最好的,恕我直言,是使用 JNDI 条目。

您可能必须重新编码应用程序的某些部分才能使用这些条目而不是普通变量,但使用此设置:

  • 配置与服务器无关:每个供应商都提供自己的实现,但规范是一个标准。
  • 在集群环境中,配置可以保存在集群范围的 JNDI 树中(参见 JBoss)
  • 可以通过 webadmin 更改配置,而无需重新启动服务器。
于 2008-11-21T23:00:06.400 回答
0

如果您将完全相同的 EAR 部署到某个容器的三个不同实例,那么您将不得不编辑部署设置,因为部署过程无法知道您想使用三个版本中的哪一个在特定的部署中。

正如上述 Piere-Yves 所说,部署设置应该进入 JNDI 条目。

如果我是你,我会让我的部署脚本(Ant?)根据你部署到的环境正确填充 JNDI 条目。

于 2008-11-22T00:03:10.813 回答
0

数据库连接池信息的存储/配置方式取决于应用服务器供应商。将其他变量内容放在类路径上的属性文件中。

于 2008-11-21T22:46:37.287 回答