У меня есть ситуация, когда я нахожусь на сервере с действительным файлом источника данных (воспроизводится ниже) для подключения к локальной базе данных, которая работает нормально. У меня также есть множество других машин с точно такими же учетными данными, за исключением того, что их IP-адреса отличаются (что у меня также есть). Я хотел бы прочитать в моем объекте DataSource localhost и обновить URL-адрес подключения с другим IP-адресом. Как мне это сделать? Я использую JBoss 4.2.3 для своего развертывания (которое я не могу изменить).
Вот метод, который я хотел бы создать
/**
* 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>