提问人:Majjari Sravanthi 提问时间:11/15/2023 最后编辑:Roman CMajjari Sravanthi 更新时间:11/16/2023 访问量:18
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
问:
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 指针异常。
答:
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 过滤器配置。
评论