开发者

JNDI resource not found in Spring controller, but works in JSP

开发者 https://www.devze.com 2023-04-03 15:27 出处:网络
I have one Tomcat 5.5 with one resource for JDBC Pool connection: <Resource name=\"jdbc/orcl\" auth=\"Container\"

I have one Tomcat 5.5 with one resource for JDBC Pool connection:

<Resource name="jdbc/orcl"
           auth="Container"
           type="oracle.jdbc.pool.OracleDataSource"
           drive开发者_如何学PythonrClassName="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"
        />

And I have the following code to obtain the Connection:

Object o = new InitialContext().lookup("java:comp/env/jdbc/orcl");
if( o instanceof DataSource ) {
  DataSource ds = (DataSource) o;
  con = ds.getConnection();
  LOGGER.debug(ds);
}

The interesting is that is working on a JSP, but not in one Spring Controller. In the spring controller I receive the message:

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        


I don't know why the issue occurs, but I can suggest a better way to use jdbc with spring - using JdbcTemplate and the spring jdbc support - see here for a manual

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号