我正在开发一个springweb应用程序。我在应用程序中使用的一个JAR文件正在使用JNDI查找DataSource。我在tomcat的server.xml中配置了这个元素。配置如下,
<GlobalNamingResources>
<Resource name="jdbc/abcd"
auth="Container"
type="javax.sql.DataSource"
maxActive="70"
maxWait="10000"
username="xxxx" password="yyyy"
validationQuery="SELECT 1 from dual"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@xx.xxx.xx.xx:xxxx:zzzz"
testOnBorrow="false"
testOnReturn="false"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="120000"
minEvictableIdleTimeMillis="3600000"
/>
</GlobalNamingResources>
上面配置的资源名称"jdbc/abcd"与JAR正在查找的名称相同,但是它找不到这个配置的数据源。有人知道可能是什么原因吗?
我收到以下异常,
javax.naming.NameNotFoundException:名称jdbc未在此上下文中绑定
您需要在web应用程序上下文中定义一个ResourceLink,使全局资源对web应用程序可见。
<ResourceLink
name="nameThatIsVisibleToTheWebApplication"
global="theGlobalName"
...
您需要做的不仅仅是配置Spring。
我建议阅读TomcatJNDI文档和这篇文章。