【FAQ】【JSP】HTTP Status 500 - Summary(问题排查时候应该仔细分析所有的错误打印说明)

时间:2022-05-28 16:59:23

Question 1、HTTP Status 500 - Unable to compile class for JSP:'***' cannot be resolved to a type

原因分析:cannot be resolved to a type 基本上是该类没有被识别出来,编译的时候,编译路径下没有该类对应的库文件,

解决方法:

1、拷贝类对应的jar到tomcat lib目录下:C:\Program Files\Java\apache-tomcat-8.0.9\lib

2、关闭tomcat服务器:执行bat文件 C:\Program Files\Java\apache-tomcat-8.0.9\bin\shutdown.bat

3、重新启动tomcat服务器,重新访问页面,该问题现象消失

Question 2、HTTP Status 500 - invalid driver class name: "java.lang.ClassNotFoundException: com.mysql.jdbc.Driver"

原因分析:JSP程序访问mysql数据库,没有正确识别mysql的jdbc驱动,通过检查发现,当前windows系统并未安装mysql的jsp程序驱动

解决方法:

1、下载驱动包:在mysql官网上或者在百度中搜索

2、拷贝mysql-connector-java-5.1.22-bin.jar到apache-tomcat的lib文件夹下(C:\Program Files\Java\apache-tomcat-8.0.9\lib)

3、关闭tomcat服务器:执行bat文件 C:\Program Files\Java\apache-tomcat-8.0.9\bin\shutdown.bat

4、重新启动tomcat服务器,重新访问页面,该问题现象消失

Question 3、HTTP Status 500 - javax.servlet.ServletException: javax.servlet.jsp.JspException: org.xml.sax.SAXParseException; systemId: jstl:; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。

解决方法:此问题是出现在使用JSP程序访问XML文件的时候,

在使用xml标签前,你必须将XML 和 XPath 的相关包拷贝至你的<Tomcat 安装目录>\lib下:

XercesImpl.jar:下载地址:http://www.apache.org/dist/xerces/j/Xerces-J-tools.2.11.0.zip

xalan.jar:下载地址: http://mirrors.cnnic.cn/apache/xalan/xalan-j/binaries/xalan-j_2_7_2-bin.zip

添加xml的jar库文件之后:现象消失。

Question 4、HTTP Status 500 - javax.servlet.ServletException: javax.servlet.jsp.JspException: org.xml.sax.SAXParseException; systemId: jstl:; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.

产生异常的运行代码:

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Data(JSTL x:parse Tags)</title>
</head>
<body>
<h3>Books Information</h3>
<c:import var="bookinfo" url="http://localhost:8080/SimpleJspWeb/books.xml"/>
<x:parse xml="$(bookinfo)" var="output"/>
<b>The title of the first book is</b>:
<x:out select="$output/books/book[1]/name"/>
<br>
<b>The price of the second book is</b>;
<x:out select="$output/books/book[2]/price"/>
</body>
</html>

问题原因:<x:parse xml="$(bookinfo)" var="output"/> 中的xml内容编写错误,括号使用错误,正确的应该是中括号。如下:
<x:parse xml="${bookinfo}" var="output"/>

参考:

http://blog.sina.com.cn/s/blog_6d5d8b580100txon.html

http://blog.csdn.net/jaysuper/article/details/5824138

Question 5、XML文件告警:No grammar constraints (DTD or XML Schema) referenced in  the document.

在XML文件头添加:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd">

Question 6、HTTP Status 500 - /CustomTag.jsp (line: 11, column: 1) The TLD for the class com.tutorialspoint.HelloTag specifies an invalid body-content (JSP) for a SimpleTag.

原因很明显:在HelloTag类中指定了一个不可用的的body-content(JSP),检查相应的tld文件,发现未设置body-content属性。在tld文件中添加以下代码:

<body-content>empty</body-content>

Question 7

未完待续。。。