初学JSP,TOMCAT5.5 + J2SDK1.5 + MSSQL-JDBC,写的最简单程序,出现如下错误,原因何在?

lovemoreh 2006-03-07 05:17:38
TOMCAT已正确配置,因为访问http://localhost/完全正常;

MSSQL-JDBC已安装,并将三个jar文件加入了CLASSPATH中。

写的最简单程序片段如下:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>

<html>
<body>

<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

String url="jdbc:microsoft:sqlserver://wjserver:1433;DatabaseName=master";
String user="sa";
String password="";

Connection conn= DriverManager.getConnection(url,user,password);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from emp_basic";
ResultSet rs=stmt.executeQuery(sql);




结果得到如下错误:

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Exception in JSP: /test_jdbc.jsp:11

8:
9: <%
10:
11: Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
12:
13: String url="jdbc:microsoft:sqlserver://wjserver:1433;DatabaseName=master";
14:


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
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: com.microsoft.jdbc.sqlserver.SQLServerDriver
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.test_005fjdbc_jsp._jspService(org.apache.jsp.test_005fjdbc_jsp:113)
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:332)
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

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:127)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:65)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
org.apache.jsp.test_005fjdbc_jsp._jspService(org.apache.jsp.test_005fjdbc_jsp:53)
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:332)
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)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.15 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.15



不知是何原因。

...全文
182 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovemoreh 2006-03-08
  • 打赏
  • 举报
回复
唉,也不知是什么原因,我无意中重启了一下系统,结果,又正常了。

可能是TOMCAT要重启动。想想,我设CLASSPATH后曾经重启动过系统,应该不是CLASSPATH设置的问题。

非常感谢各位热情解答!结贴了。
colasnail 2006-03-07
  • 打赏
  • 举报
回复
汗一下~~404才是文件找不到……
xuyingjun(徐小邪) ( ) 信誉:96 2006-03-07 17:25:00 得分: 0


500是文件找不到,先检查你的web下的文件是否能访问到,如果不能访问到,可能是web.xml错误
如果能访问到,检查驱动程序,要考到wb_inf\lib下,试试


colasnail 2006-03-07
  • 打赏
  • 举报
回复
不是服务器的问题,是你的JSP源码的问题吧~~
貌似没捕获异常哦~~
Class.forName()方法会抛出Exception
下面的java.sql.*里定义的方法会抛出SQLException
你把它们放在try catch块里试试
lovemoreh 2006-03-07
  • 打赏
  • 举报
回复
感谢各位的热情回答!一旦问题解决,立即结贴。
feixianking 2006-03-07
  • 打赏
  • 举报
回复
把.newInstance()这个也去了
lovemoreh 2006-03-07
  • 打赏
  • 举报
回复
我开始调试有问题,然后我就把那三个JAR文件复制了一份到webapps\ROOT\WEB-INF\lib下了。
feixianking 2006-03-07
  • 打赏
  • 举报
回复
MSSQL打SP3补丁,驱动也要用新一点的看看
xuyingjun 2006-03-07
  • 打赏
  • 举报
回复
org.apache.jasper.JasperException: Exception in JSP: /test_jdbc.jsp:11

8:
9: <%
10:
11: Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

可能找不到驱动
xuyingjun 2006-03-07
  • 打赏
  • 举报
回复
TOMCAT已正确配置,因为访问http://localhost/完全正常;这个和你web应用是否正常没什么关系
xuyingjun 2006-03-07
  • 打赏
  • 举报
回复
500是文件找不到,先检查你的web下的文件是否能访问到,如果不能访问到,可能是web.xml错误
如果能访问到,检查驱动程序,要考到wb_inf\lib下,试试
Qingjian 2006-03-07
  • 打赏
  • 举报
回复
哦 你看看 你MSSQL驱动还拷贝到TOMCAT中的

81,092

社区成员

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

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