gpt4 book ai didi

java - 在 Spring Controller 中找不到 JNDI 资源,但在 JSP 中有效

转载 作者:行者123 更新时间:2023-11-28 22:32:47 24 4
gpt4 key购买 nike

我有一个 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 Controller 上工作。在 Spring Controller 中,我收到消息:

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 支持 - see here手册

关于java - 在 Spring Controller 中找不到 JNDI 资源,但在 JSP 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7325881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com