在tomcat中通过JNDI连接数据库,在spring配置文件中需要加前缀:java:comp/env/,否则系统会报Name jdbc is not bound in this Context
比如在tomcat中的Context.xml中配置JNDI如下:
<Resource name="jndi/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/jndi/myds"/>?
</beans>??
如果通过java获取,则如下:
Context initCtx = new InitialContext();?
Context envCtx = (Context) initCtx.lookup("java:comp/env");?
DataSource ds = (DataSource)envCtx.lookup("jndi/myds");??
?
另:每台服务器访问数据库都需要数据库给服务器分配一个访问数据库的账号,权限根据自己项目需要
原文:http://wangduorong.iteye.com/blog/2300760