如何在开发和生产环境中使用不同的META-INF / context.xml文件

时间:2009-03-29 04:41:57

标签: java tomcat jdbc jndi

在Tomcat(和其他一些servlet容器)中,我可以在META-INF/context.xml中存储有关我的JDBC DataSource的信息。这非常有用。

但是,我的JDBC DataSource的设置在我的开发和生产环境中可能有所不同。我想知道其他人如何以优雅的方式处理这些差异,特别是如何为我的开发环境设置context.xml,以最轻松的方式为我的生产环境设置一个。{/ p>

4 个答案:

答案 0 :(得分:2)

您可以为特定版本创建不同的文件。例如,创建: development.context.xml production.context.xml

然后,您可以控制build.xml文件中使用的上下文文件。基本上,设置您想要使用哪种类型的构建的提示。选择开发时,它使用开发上下文文件。选择生产时,它使用生产上下文文件。

答案 1 :(得分:2)

我会像凯文提到的那样做。如果您使用的是Maven,则可以使用“个人资料”。

答案 2 :(得分:2)

如果您想了解有关Maven个人资料的更多信息,请阅读:Introduction to Build Profiles

答案 3 :(得分:1)

我个人不会在context.xml中存储类似的配置信息(可能在另一个属性文件或其他东西中),但这样的一般方法是让你的构建脚本将不同版本的配置文件打包到WAR / EAR /不管。您可以让构建脚本根据您传入的参数,运行不同的目标等来决定是使用“dev”还是“production”配置文件。

我经常使用的是ant中的 task,用来自过滤器文件的值替换文件中的某些标记;并根据我所针对的环境交换哪个过滤器文件。