我正在尝试通过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无法实际链接到资源?
答案 0 :(得分:0)
对我来说,它只是将资源标签直接放在context.xml中而不使用ResourceLink