我正在开发一个spring web应用程序。我在我的应用程序中使用的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未绑定在此Context中
答案 0 :(得分:3)
您需要在Web应用程序上下文中定义ResourceLink,以使全局资源对Web应用程序可见。
<ResourceLink
name="nameThatIsVisibleToTheWebApplication"
global="theGlobalName"
...
答案 1 :(得分:1)
您需要做的不仅仅是配置Spring。
我建议您阅读Tomcat JNDI documentation和this。