goback add

Tomcat中使用JNDI时需要注意的地方

2307 点击·0 回帖
灯火互联
楼主

在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:1521id"
            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");  




喜欢0 评分0