2012-03-10 8 views
1

有効なローカルデータベースへの接続に有効なDataSourceファイル(以下に再現します)を使用している状況があります。私はまた、彼らのIPアドレスが異なる(私も持っている)以外は全く同じ資格情報を持つ他のマシンのホストを持っています。私は自分のlocalhost DataSourceオブジェクトを読み込み、別のipaddressで接続URLを更新したいと思います。これはどうすればいいですか?私は自分の展開にJBoss 4.2.3を使用しています(これは変更できません)。JDBC接続用のDataSourceオブジェクトのURLを更新します。

ここで私はここで

/** 
* This gets a DataSource for a specified IP address using pacsDS as a template. 
* @param ipaddress 
* @return 
*/ 
public static DataSource getDataSource(Context context, String ipaddress) throws NamingException { 
    DataSource ds = (DataSource)context.lookup("java:/pacsDS"); 
    // Update ds to make use of supplied ipaddress 
    // ... 
    return ds; 
} 

を作成したいメソッドは、データ・ソースXMLファイルです

<?xml version="1.0" encoding="UTF-8"?> 

<!-- ===================================================================== --> 
<!--                  --> 
<!-- JBoss Server Configuration           --> 
<!--                  --> 
<!-- ===================================================================== --> 

<!-- $Id: pacs-postgres-ds.xml 5174 2007-09-26 21:05:41Z gunterze $ --> 
<!-- ==================================================================== --> 
<!-- Datasource config for Postgres          --> 
<!-- ==================================================================== --> 


<datasources> 
    <local-tx-datasource> 
     <jndi-name>pacsDS</jndi-name> 
     <connection-url>jdbc:postgresql://localhost/pacsdb</connection-url> 
     <driver-class>org.postgresql.Driver</driver-class> 
     <user-name>postgres</user-name> 
     <password></password> 
     <!-- sql to call when connection is created. Can be anything, select 1 is valid for PostgreSQL 
     <new-connection-sql>select 1</new-connection-sql> 
     --> 

     <!-- sql to call on an existing pooled connection when it is obtained from pool. Can be anything, select 1 is valid for PostgreSQL 
     <check-valid-connection-sql>select 1</check-valid-connection-sql> 
     --> 

     <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) --> 
     <metadata> 
      <type-mapping>PostgreSQL 7.2</type-mapping> 
     </metadata> 
    </local-tx-datasource> 
</datasources> 

答えて

0

あなたのJBossの設定ファイルをパラメータ化することができます。

https://community.jboss.org/wiki/SystemPropertiesInConfigFiles?_sscc=t

+0

を参照してください。あなたは私にあなたがコードの中でこれらの変数のいずれかをアップデートする方法の例を与えることができますか?私はディスク上でそれをハードコードする方法を見ていますが、実行時にそれを変更する必要があります。 – Jon

+0

私はxmlファイルを変更して、 jdbc:postgresql:// $ {connection.url}/pacsdbを読み込み、System.setProperty( "接続。 url "、" localhost ");私はDataSourceを検索する前に、それは動作していないようです。 – Jon

+0

データソースは起動時にロードされます。コマンドラインでプロパティを設定する必要があります。例えば-Dconnection.url =