尝试在我的tomcat实例的context.xml中设置几个JDBC连接,但很难理解为什么某些名称似乎会发生冲突。
通过某些名称组合,我得到了以下内容:
java.lang.ClassCastException:org.apache.tomcat.dbcp.dbcp2.BasicDataSource无法强制转换为javax.naming.Context
如果我有两个名称如下的资源,有人可以解释为什么它不起作用。
name="jdbc/postgres/1/2/3/4/5"
name="jdbc/postgres/1/2/3/4/5/6"
但是将第二个名称更改为此功能确实有效:
name="jdbc/postgres/1/2/3/4/4/6"
感谢。
答案 0 :(得分:0)
根据Tomcat doc, name 是相对于java:comp/env上下文的JNDI名称。全名被视为一个路径,其元素由/
分隔。
在您的示例中,
name="jdbc/postgres/1/2/3/4/5"
在路径
下创建数据源节点5
java:comp/env/jdbc/postgres/1/2/3/4
以下
name="jdbc/postgres/1/2/3/4/5/6"
然后尝试在路径
创建数据源节点6
java:comp/env/jdbc/postgres/1/2/3/4/5
发生异常是因为Tomcat期望5
处的路径元素(Context),但却找到了数据源。
在您的工作示例中,您在不同的路径下创建数据源6
java:comp/env/jdbc/postgres/1/2/3/4/6