Tomcat中使用JNDI時需要註意的地方 – JAVA編程語言程序開發技術文章

在tomcat中數據庫連接使用JNDI時,在spring配置文件中的名字前需要加上一個前綴:java:comp/env/,否則系統啟動時會報Name jdbc is not bound in this Context。
 
比如在tomcat的Context.xml中配的JNDI如下
 

<Resource name="myds" 
            auth="Container" 
            type="javax.sql.DataSource" 
            username="user" 
            password="password" 
            driverClassName="oracle.jdbc.driver.OracleDriver" 
            url="jdbc:oracle:thin:@192.168.2.2:1521:sid" 
            maxActive="10" 
            maxIdle="4"/> 
 
 
這時jndi的名字為myds,則在spring的配置文件中寫法如下:
 

<beans> 
 
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/myds"/> 
 
</beans> 
 
如果在代碼中取DataSource,則用如下方式:
 

Context initCtx = new InitialContext(); 
Context envCtx = (Context) initCtx.lookup("java:comp/env"); 
DataSource ds = (DataSource)envCtx.lookup("myds");   

摘自 indexchen的專欄

發佈留言