Ресурс JNDI не найден в контроллере Spring, но работает в JSP - PullRequest
1 голос
/ 07 сентября 2011

У меня есть один 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.В контроллере пружины я получаю сообщение:

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        

1 Ответ

0 голосов
/ 07 сентября 2011

Я не знаю, почему возникает проблема, но я могу предложить лучший способ использования jdbc с пружиной - с помощью JdbcTemplate и поддержки jdbc пружины - см. Здесь для руководства

...