根據包含鏈接到哪個環境的變量的值選擇JNDI資源是否有可能?如何根據環境選擇JNDI
例如,在我的域中我有3個環境:DEV,QA和STAGE。我有一個名爲EcommReporting的數據庫,它存在於每個這樣的環境中。爲了迎合這個,在我的tomcat服務器的server.xml
文件中,我有單獨的條目DEV_EcommReporting
,QA_EcommReporting
和STAGE_EcommReporting
。
問題是,我的代碼是否可以通過某種方式請求名爲EcommReporting
的JNDI資源並提供環境名稱,然後根據這兩個詳細信息返回正確的資源?
這裏的,現在我使用Spring定義數據源的bean:
<bean id="EcommReportingDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/EcommReporting"/>
</bean>
在我的Tomcat服務器的context.xml中(只顯示QA版),我有這個
然後:
<ResourceLink name="jdbc/EcommReporting"
global="jdbc/QA_EcommReporting"
auth="Container"
type="javax.sql.DataSource" />
最後,在我的Tomcat服務器的server.xml中,我定義了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"/>
ads
服務器,目前還不清楚是什麼你想要,你有3個tomcat實例,並且你希望能夠從另一個JVM訪問這3個實例所使用的數據源,這是你想要的嗎? –