我正在尝试通过ResourceLink访问数据源。
在server.xml中,我有
<GlobalNamingResources>
<Resource name="jdbc/nameXGlobal" auth="Container" type="javax.sql.DataSource"
username="usernameX" password="passwordX"
driverClassName="oracle.jdbc.xa.client.OracleXADataSource"
url="jdbc:oracle:thin:urlinfo"/>
</GlobalNamingResources>
在context.xml中,我具有以下内容:
<Context>
<ResourceLink name="jdbc/nameX" global="jdbc/nameXGlobal" type="javax.sql.DataSource"/>
</Context>
但是,当我尝试执行查找时,出现错误“ java.lang.ClassCastException:org.apache.naming.ResourceLinkRef无法转换为javax.sql.DataSource”,这意味着它不是在获取数据源,而只是在获取ResourceRefLink。
如果我只是直接将资源放置在上下文中,而不是通过server.xml使其成为全局资源,那么我不会收到错误消息,因此问题似乎出在我如何在context.xml中引用资源。
我在此页面上的Tomcat自己的建议中没有发现与在上下文中创建ResourceLink的方式有所不同:https://tomcat.apache.org/tomcat-9.0-doc/config/context.html。我可能会错过什么,导致ResourceLink无法实际链接到资源?
最佳答案
对我来说,它只是将资源标签直接放置在context.xml中而无需ResourceLink
关于java - 尝试通过ResourceLink访问Tomcat数据源将返回ResourceRefLink,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54067845/