【问题标题】:JavaEE Application Configuration Management in WebSphere (with restrictions)WebSphere 中的 JavaEE 应用程序配置管理(有限制)
【发布时间】:2012-10-08 09:48:21
【问题描述】:

我们有一个 JavaEE 应用程序在 WebSphere 应用程序服务器 (v7) 上运行。我们希望在 EAR 之外管理应用程序配置(键/值对)。由于一些有效的非技术原因,我们无法使用以下选项:

  1. 外部数据库
  2. 共享文件系统
  3. Websphere 管理控制台中的命名空间绑定
  4. WebSphere 启动脚本的变化

问题:是否有其他方法可以在 WebSphere 控制台或 EAR 之外管理配置?

我们当前的选择是将所有配置文件打包到 EAR 中,并在发生任何更改时重新打包/重新部署 EAR。

我在这个网站上研究了很多文章和问题。 JavaEE solution configuration best practices 从最佳实践的角度解决这个问题。除了使用数据库或命名空间绑定之外,它仍然没有提供其他选项。

【问题讨论】:

  • 请澄清“在EAR之外”;你的意思是你不想重新部署来更新这个配置?请澄清“命名空间绑定”;这包括应用程序绑定吗?标准的 EE 解决方案是使用 env-entry,然后在部署时指定值。
  • 是的,我不想重新部署 EAR 更新配置。命名空间绑定是由容器通过管理控制台管理的 JNDI 绑定(键/值对)。我们不能使用 env-entry,因为它需要在每次更改后重新部署。
  • 我认为您要么误解了 env-entry 的工作原理,要么没有准确描述您的限制。

标签: jakarta-ee configuration configuration-files websphere-7


【解决方案1】:

标准的 EE 解决方案是使用 env-entry。这些可以在部署期间进行配置,并且可以在部署后进行修改(企业应用程序 > 应用程序 > 环境条目),而无需重新部署。它们不需要服务器命名空间绑定。

【讨论】:

  • 如何修改websphere集群环境这些条目?
  • 应用程序在单元级别部署(到部署管理器),然后分发到节点。没有区别,因此无论应用程序如何部署,您都将遵循我提供的相同控制台点击。
【解决方案2】:

另一种选择是使用“配置名称绑定”。您可以在 AdminConsole 中找到它们:

环境/命名/命名空间绑定

使用“配置名称绑定”,您可以将常规字符串绑定到 JNDI 名称。它的好处是更改会立即反映在 JNDI 中。可以通过 AdminConsole 和 wsadmin 添加/修改/删除值。

信息中心链接:http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/cnam_configured_bindings.html

拥有“配置名称绑定”,您可以使用 InitialContext 在 JNDI 中查找其值。首选方法是在应用程序中配置名称空间绑定,并将应用程序绑定解析为配置的名称绑定。然后在您的代码中,您可以在 java:comp 下查找名称。

【讨论】:

  • 你是绝对正确的。但是,由于某些有效的非技术原因,不允许使用此选项。除了上面列出的4个选项之外,还有其他方法不可行吗?
  • 了解更多关于您的需求肯定会有所帮助。请注意,配置的名称绑定不需要重新部署应用程序,它们是“耳外的”,可以通过 AdminConsole 访问。
  • 谢谢,除了命名空间绑定还有其他选择吗?
猜你喜欢
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多