java - javax.servlet.GenericServlet.getServletContext 的 NullPointerException(GenericServlet.java :205)

标签 java servlets struts weblogic

我在生产系统上运行 Weblogic 8.1 SP6 服务器 (JDK 1.4.2)。在服务器关闭之前,我们有时会在生产服务器上遇到以下异常。我完全不知道如何解决这个问题。

 java.lang.NullPointerException
at javax.servlet.GenericServlet.getServletContext(GenericServlet.java:205)
at com.sampleapp.arch.struts.InitializingRequestProcessor.getProcessorForModule(InitializingRequestProcessor.java:135)
at com.sampleapp.arch.struts.InitializingRequestProcessor.initializeFormBean(InitializingRequestProcessor.java:29)
at com.sampleapp.arch.struts.ResettingDynaValidatorForm.reset(ResettingDynaValidatorForm.java:46)
at org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:484)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457)
at org.apache.strutsel.taglib.html.ELFormTag.doStartTag(ELFormTag.java:267)
at jsp_servlet._util.__settingsdisplay_f._jspService(__settingsdisplay_f.java:355)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)

InitializingRequestProcessor 的代码片段如下,在返回语句中抛出 NullPointerException。

请询问您是否需要任何其他信息。提前致谢。

    private static RequestProcessor getProcessorForModule(ActionServlet servlet, ModuleConfig config) {
    String key = Globals.REQUEST_PROCESSOR_KEY + config.getPrefix();
    return (RequestProcessor) servlet.getServletContext().getAttribute(key);
}

更新
根据 Alex 的响应,事实证明 ResettingDynaValidatorForm(DynaValidatorForm 的自定义实现)正在从返回 NULL 值的 struts 的 ActionForm 类中获取 super ActionServlet。
为什么服务器只在运行几天后才开始为 ActionServlet 返回 NULL 值?

最佳答案

这看起来很像 Struts 中的错误。此 NPE 是典型的 ServletConfig 不存在,这意味着有问题的 servlet 没有覆盖 init(ServletConfig config)方法得当。根据链接的 javadoc,实现者必须在其中显式调用 super.init(config)。如果你不这样做,你就会得到这种 NPE。

尝试升级 Struts。

关于java - javax.servlet.GenericServlet.getServletContext 的 NullPointerException(GenericServlet.java :205),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5176845/

相关文章:

java - RESTful 应用程序编辑未反射(reflect)在 tomcat 上

java - 如何使用密码保护 Apache Tomcat 服务器上的 HTTP Get 请求?

java - 将Servlet中的数据推送到网页

java - Struts ActionForm 属性应该是什么类型?

java - 找不到 Java 类型、类 java.util.ArrayList 和 MIME 媒体类型、application/xml 的消息正文编写器

Java 使用 SimpleDateFormat 解析日期和时间

java - 找到最小和第二小的数字

java - 无法找出 JDBC ClassNotFoundException(JTDS 驱动程序)

java - 如何在 ofbiz 应用程序中添加 servlet-api.jar?

java - html :text tag not working