前几周的工作总算在上周结束,最近的日子终于可以稍稍清闲一下了,也就有时间来学习Java了。

          今天晚上试了一下使用Tomcat 5.5下的JNDI来连接Oracle数据库,步骤如下:

          1、复制Oracle的JDBC驱动(ojdbc14.jar)到%TOMCAT_HOME%\common\lib。

          2、通过http://localhost:8080/admin/的界面来配置JNDI,新增Data Sources(要记得Save和Commit changes):

Property Value
jdbc/CRM
Oracle9i应该使用 oracle.jdbc.OracleDriver,因为oracle.jdbc.driver.OracleDriver 已经不建议使用.将来也不一定支持了

          3、定位到文件%TOMCAT_HOME%\conf\web.xml,在</web-app>之前添加如下内容:

Java-Tomcat 5.5 下的JNDI<resource-ref>
Java-Tomcat 5.5 下的JNDI
<description>DB Connection</description>
Java-Tomcat 5.5 下的JNDI
<res-ref-name>jdbc/CRM</res-ref-name>
Java-Tomcat 5.5 下的JNDI
<res-type>javax.sql.DataSource</res-type>
Java-Tomcat 5.5 下的JNDI
<res-auth>Container</res-auth>
Java-Tomcat 5.5 下的JNDI
</resource-ref>

          4、定位到%TOMCAT_HOME%\conf\Catalina\localhost\Project.xml,这里的Project是工程名,如果该文件不存在,可以手工建立。内容如下:

Java-Tomcat 5.5 下的JNDI<Context path="/Project" docBase="%TOMCAT_HOME%\webapps\Project\WebRoot">
Java-Tomcat 5.5 下的JNDI
<ResourceLink name="jdbc/CRM" global="jdbc/CRM" type="javax.sql.DataSourcer"/>
Java-Tomcat 5.5 下的JNDI
</Context>
          5、定位到工程下的WEB-INF\web.xml,添加以下内容:
Java-Tomcat 5.5 下的JNDI<resource-ref>
Java-Tomcat 5.5 下的JNDI  
<description>Database connection</description>
Java-Tomcat 5.5 下的JNDI  
<res-ref-name>jdbc/CRM</res-ref-name>
Java-Tomcat 5.5 下的JNDI  
<res-type>javax.sql.DataSource</res-type>
Java-Tomcat 5.5 下的JNDI  
<res-auth>Container</res-auth>
Java-Tomcat 5.5 下的JNDI
</resource-ref>

          6、使用以下jsp代码进行测试:

 1>

          这里走了个弯路,就是第4步,开始都没有去手工建立工程的.xml文件,所以始终不能正常使用JNDI,因为一直觉得应该在界面上或者集成到其他的xml中了,最后抱着试试看的心态,竟然成功了。也许在其他的地方可以有相同效果的配置也说不定。

          当然,程序中完全可以不使用JNDI来做,之所以使用JNDI是考虑到我们的项目是WAS环境下的JNDI,而且还数据库集群做了负载均衡,如果直接写代码没有JNDI方便,而且JNDI也是J2EE的规范之一吧,应该充分利用这些。

          最后,附上不使用JNDI的方法来连接数据库的代码:

 1>

相关文章:

  • 2021-08-30
  • 2021-08-15
  • 2021-05-01
  • 2021-05-04
  • 2022-12-23
猜你喜欢
  • 2021-07-24
  • 2022-12-23
  • 2021-07-24
  • 2021-08-11
  • 2021-04-07
  • 2021-08-25
  • 2022-02-09
相关资源
相似解决方案