别人回答没解决问题,只好问专家了。
使用环境:
winxp
Tomcat/5.5.26
j2sdk 1.5
SQL server 2000 打了SP4补丁
安装了Microsoft SQL Server 2000 Driver for JDBC sp3
WEB-INF\lib下也放了jar包。平常的数据库连接都可以。
这是个书中的例子,做时出现问题:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
<jsp:useBean id="conn" scope="page" class="com.ConnDB"/>
<%
String sql="select * from tb_branch";
ResultSet rs=conn.executeQuery(sql);
%>
<html>
<head>
<title>选择所有列 </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="CSS/style.css" rel="stylesheet">
</head>
<body>
<table width="600" height="201" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td height="201" valign="top">
<table width="100%" height="77" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bordercolordark="#FFFFFF" bordercolorlight="#666666">
<tr style="padding:5px;">
<td height="24" colspan="4" align="center" bgcolor="#CCCCCC">≡≡≡ 部门全部信息 ≡≡≡ </td>
</tr>
<tr>
<td width="18%" height="27" align="center"> ID号 </td>
<td width="36%" align="center">部门名称 </td>
<td width="20%" align="center">联系电话 </td>
<td width="8%" align="center">备注 </td>
</tr>
<%
try{
while(rs.next()){
%>
<tr style="padding:5px;">
<td height="24" align="center"> <%=rs.getInt("id")%> </td>
<td align="center"> <%=rs.getString("name")%> </td>
<td align="center"> <%=rs.getString("tel")%> </td>
<td align="center"> <%=rs.getString("memo")%> </td>
</tr>
<%
}
}catch(Exception e){}
%>
</table> </td>
</tr>
</table>
</body>
</html>
错误如下:
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: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:599)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:137)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:314)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.ClassNotFoundException: org.apache.jsp._01.index_jsp
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:597)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:137)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:314)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.
查了一天也不知道问题出现在什么地方,网上也没有搜出来,请高手帮忙好吗?
package com;
import java.sql.*;
/**
* 文件名:ConnDB
* 描述:操作数据库
* 公司:明日科技
* 作者:无语
*/
public class ConnDB {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
public ConnDB() {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch (java.lang.ClassNotFoundException e) {
System.err.println(e.getMessage());
}
}
/**
* 功能描述: 执行查询操作
* 参数: String
* 返回值: ResultSet
*/
public ResultSet executeQuery(String sql) {
try {
conn = DriverManager
.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_JSDQ11;user=sa;password=");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
}
/**
* 功能描述: 执行更新操作
* 参数: String
* 返回值: int
*/
public int executeUpdate(String sql) {
int result = 0;
try {
conn = DriverManager
.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_JSDQ11;user=sa;password=");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
result = stmt.executeUpdate(sql);
} catch (SQLException ex) {
result = 0;
}
return result;
}
/**
* 功能描述: 关闭数据库连接
* 参数: 无
* 返回值: void
*/
public void close() {
try {
if (rs != null)
rs.close();
} catch (Exception e) {
e.printStackTrace(System.err);
}
try {
if (stmt != null)
stmt.close();
} catch (Exception e) {
e.printStackTrace(System.err);
}
try {
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
}
web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
再说一下我的目录吧:
webapps\sl\01文件夹中有所有的文件。
webapps\sl\01\index.jsp
webapps\sl\01\WEB-INF\classes\com\ConnDB.class
webapps\sl\01\WEB-INF\lib下有三个JAR包。
webapps\sl\01\WEB-INF\web.xml
[解决办法]
[解决办法]
jsp编译后的类都找不到
去tomcat的 work目录下面看看 有没有jsp编译出的class文件
[解决办法]
你的目录要这样,不是自己想当然!
webapps\sl\01\index.jsp
webapps\WEB-INF\classes\com\ConnDB.class
webapps\WEB-INF\lib下有三个JAR包。
webapps\WEB-INF\web.xml
[解决办法]
你请求的文件路径不对啊,才会报500错误啊,只要你的配置没有问题.
一般500错误都是资源文件无法找到或是访问的路径名不对,你在好好的看看吧.
这是出错信息给的提示,看看你当前执行页面的路径是否正确,建议你弄绝对路径好一点,引用的时候就不会出现下面的提示了。
当然500错误,还会报其它错误,关键还是阻止的页面的访问,找不到页面,就报了500错误了
java.lang.ClassNotFoundException: org.apache.jsp._01.index_jsp
本人结交java web开发的,访问我的博客公告,就可以看到群号码
http://blog.csdn.net/qlrhoo
[解决办法]
你Tomcat的server.xml配置不对
我的异常网推荐解决方案:The server encountered an internal error () that prevented it from fulfilling this request.,http://www.myexception.cn/java-web/317.html