2014-10-29 98 views
2

是否可以使用多個名稱(同義詞,別名)創建JNDI tomcat資源? 喜歡的東西Tomcat JNDI資源名稱別名

<Resource 
     name="jdbc/product-ds" 
     alias="jdbc/product-cfg-ds" 
     type="com.mchange.v2.c3p0.ComboPooledDataSource" 
     ... 
/> 

我需要這個,因爲有使用相同的數據源的兩個模塊,但具有不同的JNDI名稱。最簡單的解決方案將是同步這些名稱,但不幸的是目前不可能。

+0

不是正確回答這個問題,但作爲最後所度假村的解決方法,你可以簡單地定義兩個數據源鏈接到同一個數據庫。我無法真正找到有關如何做具體你想要的文件,但我有一個嘮叨的感覺,解決方案是在web.xml中的resource-ref配置中,而不是實際的資源... – Gimby 2014-10-29 08:55:08

回答

1

你可以這樣做。我花了一段時間才找出正確的順序。你需要做的是在你的server.xml(Tomcat的/ conf目錄/ server.xml中)在GlobalNamingResources節中定義的JDBC /產品DS有點像這樣:

<GlobalNamingResources> 
     <Resource name="jdbc/product-ds " auth="Container" 
      type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" 
      url="jdbc:oracle:thin:@127.0.0.1:1521:mysid" 
      username="scott" password="tiger" maxActive="20" maxIdle="10" 
      maxWait="-1"/> 
    </GlobalNamingResources> 

然後,您可以重命名此您服務器的context.xml(tomcat的/ conf/context.xml文件)

像這樣:然後

<ResourceLink 
     name="jdbc/product-cfg-ds" 
     global="jdbc/product-ds" 
     type="javax.sql.DataSource"/> 

全局名稱重命名爲部署在服務器上的所有應用程序。我不認爲全球JDBC /產品,DS將在任何應用程序,如果你確實想它你需要添加:

<ResourceLink 
     name="jdbc/product-ds" 
     global="jdbc/product-ds" 
     type="javax.sql.DataSource"/>