HTTP状态500 - 由于taglib导致的java.lang.ClassNotFoundException:org.apache.jsp.index_jsp

app*_*eaf 2 jsp tomcat intellij-idea

我用idea 2016创建了一个jsp项目,jsf的代码如下.

 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<html>
<head>
  <title>JSP 2.0 Expression Language - Implicit Objects</title>
</head>
<body>
<h1>JSP 2.0 Expression Language - Implicit Objects</h1>
<hr>
This example illustrates some of the implicit objects available
in the Expression Language.  The following implicit objects are
available (not all illustrated here):
<ul>
  <li>pageContext - the PageContext object</li>
  <li>pageScope - a Map that maps page-scoped attribute names to
    their values</li>
  <li>requestScope - a Map that maps request-scoped attribute names
    to their values</li>
  <li>sessionScope - a Map that maps session-scoped attribute names
    to their values</li>
  <li>applicationScope - a Map that maps application-scoped attribute
    names to their values</li>
  <li>param - a Map that maps parameter names to a single String
    parameter value</li>
  <li>paramValues - a Map that maps parameter names to a String[] of
    all values for that parameter</li>
  <li>header - a Map that maps header names to a single String
    header value</li>
  <li>headerValues - a Map that maps header names to a String[] of
    all values for that header</li>
  <li>initParam - a Map that maps context initialization parameter
    names to their String parameter value</li>
  <li>cookie - a Map that maps cookie names to a single Cookie object.</li>
</ul>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我收到了以下错误信息.

HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

type Exception report

message java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

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

exception

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:376)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:376)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.69 logs.
Apache Tomcat/7.0.69
Run Code Online (Sandbox Code Playgroud)

删除下面的行后,异常消失.

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
Run Code Online (Sandbox Code Playgroud)

我下载了jstl-1.2.jar并将其添加到我项目的外部库中.问题仍然存在.有谁知道如何处理或调试问题?

app*_*eaf 7

最后我自己解决了这个问题.以下是步骤:

1.从下面的链接下载jstl-1.2.jar和standard-1.1.2.jar.

http://repo2.maven.org/maven2/javax/servlet/jstl/

http://repo2.maven.org/maven2/taglibs/standard/

2.将两个文件复制到Tomcat lib文件夹中.

3.Rename standard-1.1.2.jar to standard.jar.

那个例外消失了.