tomcat5.5配置jndi和tomcat5.0的不同
昨天,配置了一整天Eclipse,终于搞定。不过在配置好Tomcat的连接池之后,测试与SQL Server2000的连接的时候出现了Cannot create JDBC driver of class '' for connect URL 'null'的错误。下面把我的解决方案写出:注意:我使用的是JTDS驱动!
1.请保证你的SQL Server 2000已经打过SP4的补丁了。之前我出现Cannot create JDBC driver of class '' for connect URL 'null'的问题,原因就是没打SP4的补丁!
2.正确配置连接池!
常用的配置Tomcat连接池有两种方法:一是利用Tomcat的管理界面。二是修改Tomcat的配置文件。这里简单介绍通过修改Tomcat的配置文件配置连接池的方法。配置Tomcat连接池需要修改两个个地方,一是$Tomcat_HOME/conf/server.xml,$Tomcat_HOME是指Tomcat的安装目录,在server.xml
例程 1-3 配置server.xml文件
<Context path="/Blog" docBase="Blog" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/blog" auth="Container"
type="javax.sql.DataSource" driverClassName="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://localhost:1305;DatabaseName=blog"
username="sa" password="" maxActive="20" maxIdle="10" maxWait="-1"/>
</Context>
另外一个需要修改的地方是$Tomcat_HOME/webapps/blog/WEB-INF/web.xml,在里web.xml文件里增加下面代码:
例程1-4 在web.xml文件里要增加的内容
<resource-ref>
<description>blog DB connect pool</description>
<res-ref-name>jdbc/blog</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
下面是测试代码:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Context ctx=null;
Connection cnn=null;
Statement stmt=null;
ResultSet rs=null;
try {
ctx=new InitialContext();
if(ctx==null) throw new Exception("没有匹配的环境");
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/connectDB");
if(ds==null) throw new Exception("没有匹配数据库");
cnn=ds.getConnection(); stmt=cnn.createStatemen(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="select * from blog_user";
rs=stmt.executeQuery(sql);
<%out.print("数据库操作成功,恭喜你");%>
<%
}catch(Exception ee){
System.out.println("connect db error:"+ee.getMessage());
return false;
}finally
{
if(rs!=null)rs.close();
if(stmt!=null)stmt.close();
if(cnn!=null)cnn.close();
if(ctx!=null)ctx.close();
}
%>
</body>
</html>
*****************************************************************
Cannot create JDBC driver of class '' for connect URL 'null'
在Tomcat 5.5.XX中,使用以前的配置方式,会出现这个问题。
解决方法:
将如下格式的Resource描述插入server.xml的<Context></Context>中:
<Resource name="jdbc/db" type="javax.sql.DataSource" username="sa" password="admin" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev" maxActive="4"/>
用以取代以前的配置方式:
<Resource name="jdbc/db" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/db">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>password</name>
<value>admin</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>180</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
</ResourceParams>
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步