Возможно ли каким-либо образом выбрать ресурс JNDI на основе значения переменной, содержащей среду для ссылки?Как выбрать JNDI на основе среды
Например, в моем домене у меня есть 3 среды: DEV, QA и STAGE. У меня есть база данных под названием EcommReporting, которая существует для каждой из этих сред. Чтобы удовлетворить это, в файле server.xml
моего сервера tomcat у меня есть отдельные записи для DEV_EcommReporting
, QA_EcommReporting
и STAGE_EcommReporting
.
Вопрос в том, может ли мой код просто запросить ресурс JNDI с именем EcommReporting
и предоставить имя среды, а затем, основываясь на этих двух деталях, вернет правильный ресурс?
Вот теперь я определяю источник данных боб с использованием Spring:
<bean id="EcommReportingDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/EcommReporting"/>
</bean>
Затем в context.xml моего сервера Tomcat (только показывает версию QA), у меня есть это:
<ResourceLink name="jdbc/EcommReporting"
global="jdbc/QA_EcommReporting"
auth="Container"
type="javax.sql.DataSource" />
И, наконец, в server.xml моего сервера Tomcat, я определил JNDI ресурс следующим образом:
<Resource name="jdbc/QA_EcommReporting"
global="jdbc/QA_EcommReporting"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://URLHERE.COM:3311/REPORTING"
username="username_here"
password="password_here"
maxActive="100"
maxIdle="20"
minIdle="5"
maxWait="10000"/>
объявления
это не ясно, что вы хотите, у вас есть 3 экземпляра tomcat, и вы хотите иметь доступ к источнику данных, используемому этими 3 экземплярами из другой JVM, это то, что вы хотите? –