对于典型的 J2EE Web 应用程序,数据源连接设置存储为应用程序服务器配置的一部分。
有没有办法对这些配置细节进行版本控制?我想要对数据源和其他应用程序服务器配置更改进行更多控制。
这样做的标准做法是什么?
对于典型的 J2EE Web 应用程序,数据源连接设置存储为应用程序服务器配置的一部分。
有没有办法对这些配置细节进行版本控制?我想要对数据源和其他应用程序服务器配置更改进行更多控制。
这样做的标准做法是什么?
使用 WebSphere 时,我们发现最好的方法是编写部署脚本,并将脚本置于版本控制之下,以及每个目标环境的响应文件。
通过版本控制跟踪应用程序服务器的配置更改是一件好事。但是,这确实意味着所有更改都是通过脚本完成的,而不是管理 Web 界面。我建议
http://www.ibm.com/developerworks/java/library/j-ap01139/index.html?ca=drs-
作为关于这个主题的一篇很好的背景信息文章。
更新:就在最近,第 2 部分已在此处发布:http ://www.ibm.com/developerworks/java/library/j-ap02109/index.html?ca=drs-
Websphere 可能很棘手,因为目录结构是一堆文件 - 通常似乎有重复,很难确定哪个是您需要备份/恢复的神奇文件。如何去做这件事的问题不应该减损做这件事的必要性。- 这是肯定的。
我们的(Spring)应用在 spring 配置文件中有一个硬编码的 jndi 名称。这样,同一个耳朵可以部署到 dev、qa 和 prod 环境中,您不必担心数据库连接细节。
应用服务器管理员确保针对该 jndi 名称注册数据源,并在每个环境中使用适当的连接详细信息。
但这如何让我管理对应用程序服务器中数据源配置的更改。这是一个场景:
DBA 更改数据库服务器的连接密码。
Webspehere/Weblogic 管理员通过管理员控制台对服务器配置进行相应的更改。
上述更改不受版本控制,因此无法清楚地了解此类更改的历史记录。
问题不在于应如何配置应用程序,而在于应如何对配置更改进行版本控制。也许对于简单的项目来说这听起来有点矫枉过正,但对于某些项目来说,控制这样的变化确实成为一个问题。
每当您问自己“X 是否应该在版本控制中”时,默认答案都是“是”。
要获得更精确的答案,请问自己:文件是由人创建的(如源文件或文档)还是由另一个程序生成的(如目标文件或分发 PDF)?
由人创建和/或维护的文件应受配置控制。
我们一直在为我们的应用服务器设置使用版本控制。它是一个名为 WLST(weblogic 脚本工具)的工具,它是 weblogic 服务器分发的一部分。域配置存储在 Jython 脚本中,该脚本可以通过命令行轻松执行,因此与我们的构建工具 maven 完美集成。
创建一个预配置的运行 weblogic 域只需要执行一个 maven 目标。所有那些错误配置的 jdbc 连接或错误的 jms 目标参数的烦人问题都消失了。您将始终拥有一个在给定时间与源代码匹配的 appserver 配置。您永远不需要记住必须为您正在处理的项目的这个特定版本应用哪个应用服务器设置。
我真的推荐这个。
我也想知道,其他应用服务器是否有类似的解决方案可用。据我所知,有一种通过蚂蚁来处理玻璃鱼的方法。JBoss 如何做到这一点?