注册 登录
编程论坛 J2EE论坛

为什么总是取不到connection

心动音符 发布于 2007-01-13 14:20, 1575 次点击

这是为什么啊?
org.apache.jasper.JasperException: Exception in JSP: /process.jsp:30

27:
28: Context ctx=new InitialContext();
29: DataSource ds=(DataSource)ctx.lookup("java:comp/env/guest");
30: Connection conn=ds.getConnection();
31:
32: PreparedStatement pstmt=conn.prepareStatement(
33: "insert into guestbook(gst_user,gst_title,gst_content,gst_ip) values(?,?,?,?)");


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

javax.servlet.ServletException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:843)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
org.apache.jsp.process_jsp._jspService(process_jsp.java:143)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:766)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
org.apache.jsp.process_jsp._jspService(process_jsp.java:124)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
-------------------原代码如下-----------------------
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*" %>
<%@ include file="util.jsp" %>

<%
request.setCharacterEncoding("gb2312");

String name=request.getParameter("name");
String title=request.getParameter("title");
String content=request.getParameter("content");

if(null==name || null==title || null==content)
{
response.sendRedirect("index.jsp");
return;
}

name=toHtml(name.trim());
title=toHtml(title.trim());
if(name.equals("") || title.equals(""))
{
response.sendRedirect("say.html");
return;
}
content=toHtml(content.trim());
String fromIP=request.getRemoteAddr();

Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/guest");
Connection conn=ds.getConnection();

PreparedStatement pstmt=conn.prepareStatement(
"insert into guestbook(gst_user,gst_title,gst_content,gst_ip) values(?,?,?,?)");
pstmt.setString(1,name);
pstmt.setString(2,title);
pstmt.setString(3,content);
pstmt.setString(4,fromIP);

pstmt.executeUpdate();
pstmt.close();
conn.close();
response.sendRedirect("index.jsp");
%>
------------------配置信息如下----------------
<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="F:/SmallItem/guestbook/guest"
reloadable="true">
<Resource
auth="Container"
name="guest"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
password=""
maxIdle="30"
maxWait="100000"
username="root"
url="jdbc:mysql://localhost:3306/test?autoReconnect=true"
maxActive="100"/>
</Context>

19 回复
#2
千里冰封2007-01-13 14:25
javax.servlet.ServletException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

这句话告诉了你为什么
#3
无理取闹2007-01-13 14:43

没找到mysql的jdbc驱动

#4
心动音符2007-01-13 14:53
我驱动有写啊 mysql 驱动难道写错了 不会啊 我Ctrl+C的啊
#5
心动音符2007-01-13 14:54
MySQL驱动不是这个吗
com.mysql.jdbc.Driver
#6
无理取闹2007-01-13 15:02
你把它放到正确地方了么?
#7
心动音符2007-01-13 15:16
放在应用的lib下了啊
#8
心动音符2007-01-13 15:19
只有本站会员才能查看附件,请 登录

#9
hanshengchua2007-01-13 15:38

在tomcat中需要放入mysql的驱动jar文件!

放在..\Tomcat 5.0\common\lib\mysql-connector-java-3.0.16-ga-bin.jar

#10
无理取闹2007-01-13 17:57

tomcat里面不用吧

#11
hanshengchua2007-01-13 21:59
以下是引用韩峰在2007-1-13 17:57:43的发言:

tomcat里面不用吧

5.0里面需要一个mysql的驱动jar文件

[此贴子已经被作者于2007-1-13 22:02:31编辑过]

#12
无理取闹2007-01-13 22:51

将驱动放入自己项目的lib里面就可以吧!!!
跟tomcat应该没什么关系 当然放入就是方便了

#13
hanshengchua2007-01-13 23:00
以下是引用韩峰在2007-1-13 22:51:27的发言:

将驱动放入自己项目的lib里面就可以吧!!!
跟tomcat应该没什么关系 当然放入就是方便了

对头!好像不是com.mysql.jdbc.Driver,我的是:mysql-connector-java-3.0.16-ga-bin.jar

[此贴子已经被作者于2007-1-13 23:09:50编辑过]

#14
无理取闹2007-01-13 23:04
驱动的名字就是com.mysql.jdbc.Driver这个是sun提供的
你那个不过是驱动的jar文件名
写程序当然要用com.mysql.jdbc.Driver
#15
hanshengchua2007-01-13 23:11
那是哪里出了问题呢?我的配置文件上是这样写的:
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>

用的驱动不是com.mysql.jdbc.Driver
#16
心动音符2007-01-13 23:12
兄弟们啊 快来帮帮我吧 到底哪的问题啊 给点建议吧
冰封兄 指点一二啊!
#17
心动音符2007-01-13 23:14
DataSource ds=(DataSource)ctx.lookup("java:comp/env/guest");
数据源获取的是不是有问题啊?java:comp/env/guest这个我一直不理解是什么意思
#18
千里冰封2007-01-13 23:14
韩峰不是说了吗
#19
心动音符2007-01-13 23:15

驱动怎么会找不到呢 我放到lib里了啊

#20
hanshengchua2007-01-14 19:31

给你一个jar驱动包,jar不让上传,改成rar自己改回就行!

你试一下改用org.gjt.mm.mysql.Driver驱动,看看行不行,我都是这样作的,可以实现!!

只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2007-1-14 19:34:12编辑过]

1