TOMCAT配置JNDI
没想到看上去挺简单的一件事情反而花了我半天时间,郁闷得要命。还是有必要把正确的整理清楚。
我是在Eclipse3.1下调用Tomcat5.0,数据库是MS SqlServer2000 sp4,驱动程序是jtds1.1。
第一步,假设我现在的应用程序目录是Sample,把数据驱动程序jtds**.jar放到Tomcat安装目录的common\lib和应用程序目录webapps\Sample\WEB-INF\lib下。运行Tomcat,打开浏览器,进入Tomcat的管理界面,http://localhost:8080/admin,登陆后,选择Resource , DataSources,下拉菜单,Create New DataSource。
JNDI名称:jdbc/mssql
DataSource URL:jdbc:jtds:sqlserver://localhost/Northwind。(相应的修改IP和数据库名称)
JDBC Driver Class:net.sourceforge.jtds.jdbc.Driver
User Name:sa
Password:*******(你的数据库密码)
其他按照默认。save,commit changes, log out,重启Tomcat。
第二步,打开应用程序目录 webapps\Sample里面的WEB-INF\web.xml,在最后</web-app>前添加:
<resource-ref>
<description>MS SQL Server</description>
<res-ref-name>jdbc/mssql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
如果没有添加这一步,就会报这样的错误:Name jdbc is not bound in this Context 。
第三步,打开Tomcat安装目录下的conf\Catalina\localhost,找到和你的应用程序同名的xml,例如Sample.xml。如果没有,就建一个。Sample.xml里面的内容是:
<?xml version='1.0' encoding='utf-8'?>
<Context displayName="This is a Sample" docBase="Sample" path="/Sample" workDir="work\Catalina\localhost\Sample">
<ResourceLink name="jdbc/mssql" global="jdbc/mssql" type="javax.sql.DataSource"/>
</Context>
要注意的是,文件名、docBase、path、workDir都不能错,要和你应用程序名称相对应。
如果第二步正确了,但是还没有添加这一步,就会报这样的错误:Cannot create JDBC driver of class "for connect URL 'null'" 。
到这里的话,就基本正确了。在网上找来找去,都很难找到准确的答案。总是做了第一步,错第二步。做了第二步,又错第三步。三步都对齐真的不容易。