HTTP 状态 500 – 内部服务器错误
输入异常报告
消息在第 [31] 行处理 [/index.jsp] 时发生异常
描述 服务器遇到意外情况,无法满足请求。
异常
org.apache.jasper.JasperException:处理时发生异常[/index.jsp]
根本原因
java.lang.NullPointerException org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:40) org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:40) org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:48) org.apache.jsp.index_jsp._jspx_meth_s_005fa_005f0(index_jsp.java:300) org.apache.jsp.index_jsp._jspService(index_jsp.java:173) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
注意根本原因的完整堆栈跟踪可在服务器日志中找到。 Apache Tomcat/9.0.80
我无法确切地找到为什么会出现空指针异常。在index.jsp文件中,
在 JSP 中您已经使用了 Struts 标签。他们需要使用Struts过滤器来运行。也不要使用对 JSP 的直接访问。您正在使用 Tomcat 作为应用程序服务器。默认情况下,它被配置为使用
index.jsp
作为欢迎页面,并由 Tomcat 中的默认 servlet 提供服务。这里甚至没有涉及Struts。因此,Struts 标签将无法工作。
在幕后,如果您查看 stacktrace,您会看到
<s:a>
标签正在尝试从操作上下文中获取值堆栈,但它是 null
,因为 Struts 过滤器不提供请求。
您需要的是学习Struts应用程序的基础知识。这里是来自 Struts 入门文档的示例教程。 如何创建 Struts 2 Web 应用程序。特别是第 5 节,您可以看到 Struts 过滤器配置。