2012-04-02 32 views
2

我在2个位置运行Tomcat 7 Web应用程序;在一个位置有一个MySQL数据库,另一个是SQL-Server。在webapp的context.xml文件中,我定义了两个包含两个数据库的数据库连接信息的<Resources>。 因为我还在开发中,我有时使用MySQL服务器(在家中)运行应用程序,有时使用SQL服务器(在工作中)运行应用程序。如何在Tomcat中存储简单的自定义设置

到现在为止我一直每次重新编译代码,可以连接到MySQL或SQL-Server中,通过改变改线

//connect to MySQL 
DataSource ds = (DataSource) env.lookup("jdbc/mysql"); 

//connect to SQL-Server 
DataSource ds = (DataSource) env.lookup("jdbc/sqlserver"); 

有一个简单的(R )让Web应用程序知道我在哪个位置的方法,例如在xml文件中设置一个设置,以便Web应用程序知道它必须连接哪个数据库?

回答

1

使JNDI名称成为您作为属性文件值或VM参数或环境变量值检索的外部配置设置。

E.g.作为属性文件config.propertiesput in the classpath

db.jndi.name=jdbc/mysql 

,你得到如下:

Properties properties = new Properties(); 
properties.load(input); 
String dbJndiName = properties.getProperty("db.jndi.name"); 

或作为您的服务器的启动脚本指定VM参数:

-Ddb.jndi.name=jdbc/mysql 

这你得到如下:

String dbJndiName = System.getProperty("db.jndi.name"); 
1

在您的应用程序的上下文定义中,只能定义一个始终具有相同名称的数据源。根据您的位置更改数据源定义。

+0

智能答案,谢谢! – reus 2012-04-02 17:10:50

相关问题