是否可以创建具有多个名称(同义词,别名)的JNDI tomcat资源? 像
这样的东西<Resource
name="jdbc/product-ds"
alias="jdbc/product-cfg-ds"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
...
/>
我需要这个,因为有两个模块使用相同的DataSource,但具有不同的JNDI名称。最简单的解决方案是同步这些名称,但不幸的是,目前还不可能。
答案 0 :(得分:1)
你可以这样做。我花了一段时间来计算出正确的序列。您需要做的是在GlobalNamingResources部分中的server.xml(tomcat / conf / server.xml)中定义jdbc / product-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 / product-ds可以在任何应用程序中使用,如果你确实需要它,你需要添加:
<ResourceLink
name="jdbc/product-ds"
global="jdbc/product-ds"
type="javax.sql.DataSource"/>