HTTP 状态 500 – 将 struts1 jar 替换为新的 struts2 6.3.0 jar 后出现内部服务器错误

HTTP Status 500 – Internal Server Error after replacing the struts1 jar with the new struts2 6.3.0 jar

提问人:Majjari Sravanthi 提问时间:11/15/2023 最后编辑:Roman CMajjari Sravanthi 更新时间:11/16/2023 访问量:18

问:

HTTP Status 500 – Internal Server Error

Type Exception Report

Message An exception occurred processing [/index.jsp] at line [31]

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: An exception occurred processing [/index.jsp] 

Root Cause

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

我无法确切地找到为什么会出现 Null 指针异常。在文件中,标签无法正常工作,它显示index.jsp<s:a>

org.apache.jasper.JasperException:处理过程中发生异常。

如何使此标记正常工作,以便不会发生 Null 指针异常。

jsp tomcat nullpointerexception struts2 struts-tags

评论


答:

1赞 Roman C 11/16/2023 #1

在 JSP 中,您已经使用了 Struts 标记。它们需要使用正在运行的 Struts 过滤器。此外,不要使用对 JSP 的直接访问。您正在使用 Tomcat 作为应用程序服务器。默认情况下,它被配置为用作欢迎页面,并且在 Tomcat 中由 Servlet 提供。甚至 Struts 也没有参与其中。因此,Struts 标签将无法工作。index.jsp

在后台,如果你看一下堆栈跟踪,你会看到标签试图从操作上下文中获取值堆栈,但这是因为请求不是由 Struts 过滤器提供的。<s:a>null

您需要的是学习 Struts 应用程序的基础知识。以下是 Struts 入门文档中的示例教程。如何创建 Struts 2 Web 应用程序。尤其是第 5 节,您可以在其中看到 Struts 过滤器配置。