2012-04-02 64 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

相關問題