我有一个Tomcat 5.5和一个用于JDBC池连接的资源:
<Resource name="jdbc/orcl"
auth="Container"
type="oracle.jdbc.pool.OracleDataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="oracle.jdbc.pool.OracleDataSourceFactory"
url="jdbc:oracle:thin:@myip:myport:mydatabase"
user="..."
password="...
implicitCachingEnabled="true"
connectionCachingEnabled="true"
connectionCacheProperties="{InitialLimit=10, MinLimit=10, MaxLimit=50, MaxStatementsLimit=0, ConnectionWaitTimeout=20}"
connectionCacheName="cacheOrcl"
/>
我有以下代码来获得连接:
Object o = new InitialContext().lookup("java:comp/env/jdbc/orcl");
if( o instanceof DataSource ) {
DataSource ds = (DataSource) o;
con = ds.getConnection();
LOGGER.debug(ds);
}
有趣的是,它是在JSP上工作,而不是在一个Spring控制器上。在弹簧控制器中,我收到消息:
Name jdbc is not bound in this Context
org.apache.naming.NamingContext NamingContext.java 770 lookup
org.apache.naming.NamingContext NamingContext.java 153 lookup
org.apache.naming.factory.ResourceLinkFactory
我不知道为什么会出现这个问题,但我可以建议一个更好的方法来使用jdbc与spring -使用JdbcTemplate和spring jdbc支持-查看这里的手册