采用DataSource连接数据库问题,为什么老是连不上?

cadwolf 2003-10-15 04:27:38
我采用DataSource来获得对数据库连接,为什么连不上?

报如下异常
org.apache.jasper.JasperException: Cannot load JDBC driver class 'null'
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
........................

我的jsp源代码如下:
<HTML><HEAD>
<TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8"></HEAD>
<%@ page contentType="text/html" import="javax.sql.*,java.sql.*,javax.naming.*"%>

<BODY bgColor=#fffff0>
<p><font color=#333399 size=5>Users List</font></p>
<%
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/yqJSCDataSource");

Connection conn = ds.getConnection(); //就是在这个地方出错,不能获得连接

try{
Statement statement = conn.createStatement();
String statementStr = "select * from JSC_USER";
ResultSet userResultSet=statement.executeQuery(statementStr);
while(userResultSet.next())
{
System.out.println("User_ID: "+userResultSet.getString("User_ID"));
}
}
catch(SQLException e)
{
System.out.println("Error in operation on Dababase");
}

%>
</BODY></HTML>

Server.xml 配置如下:

<Resource name="jdbc/yqJSCDataSource" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/yqJSCDataSource">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@127.0.0.1:1521:test5</value>
</parameter>
<parameter>
<name>username</name>
<value>yqSupportCenter</value>
</parameter>
<parameter>
<name>password</name>
<value>yqSupportCenter</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>

web.xml 配置如下:
<resource-ref>
<description>Oracle Datasource</description>
<res-ref-name>jdbc/yqJSCDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

请教各位怎么回事啊?
...全文
432 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cadwolf 2003-10-16
  • 打赏
  • 举报
回复
up
cadwolf 2003-10-16
  • 打赏
  • 举报
回复
缓存文件包括那些文件呢?在什么地方啊?

yaray 2003-10-16
  • 打赏
  • 举报
回复
对于莫名其妙的错误原因的解决办法之一就是:

停止你的应用服务器
删除应用服务器的所有缓存文件
重新启动机器
希偌 2003-10-16
  • 打赏
  • 举报
回复
那就奇怪了,我在我这里试了,正常
cadwolf 2003-10-15
  • 打赏
  • 举报
回复
可以的,我如果用DriverManager就可以获得连接,数据库访问正常
希偌 2003-10-15
  • 打赏
  • 举报
回复
是吗?你用下面的句子测试一下是否真的可以在classpath里找到这个Driver
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e) {
System.out.println(e.toString());
}
cadwolf 2003-10-15
  • 打赏
  • 举报
回复
beyond_xiruo
我觉得应该也是这个问题,但我已经把class12.jar加到classpath里了,还是不行,搞不懂
cadwolf 2003-10-15
  • 打赏
  • 举报
回复
没有为空的
我打出来分别是
org.apache.naming.NamingContext@1762fc7 org.apache.commons.dbcp.BasicDataSource@106df95
希偌 2003-10-15
  • 打赏
  • 举报
回复
似乎是没找到oracle.jdbc.driver.OracleDriver这个驱动
fengjingyu 2003-10-15
  • 打赏
  • 举报
回复
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/yqJSCDataSource");
这两个中有一个为null,打印出来看看吧。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧