2012-04-02 16 views
2

Tomcat 7 Webアプリケーションを2か所で実行します。ある場所にはMySQLデータベースがあり、もう1つにはSQLサーバーがあります。 webappのcontext.xmlファイルには、両方のデータベースのデータベース接続情報を含む2つの<Resources>が定義されていました。 私はまだ開発中ですので、MySQLサーバ(自宅)、時にはSQLサーバ(作業中)でアプリケーションを実行することがあります。Tomcatに簡単なカスタム設定を保存する方法

は、今まで私はどちらか

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

にライン

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

を変更する変更することで、MySQLやSQL-Serverに接続するたびにコードを再コンパイルされているシンプルな(rがあります)Webアプリケーションにどのデータベースが接続する必要があるかを知るために、WebアプリケーションがXMLファイルの設定など、どの場所にいるかを知ることができますか?

答えて

1

JNDI名を、プロパティファイル値またはVM引数として、または環境変数値として取得する外部構成設定にします。

など。プロパティは、あなたput in the classpathconfig.propertiesファイルとして:

次のようにあなたが得る
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

アプリケーションのコンテキスト定義では、常に同じ名前のデータソースを1つだけ定義します。現在の場所に応じてデータソース定義を変更します。

+0

スマートな答えもありがとう! – reus

関連する問題