Исключение — java.lang.NullPointerException: модуль «null» не найден в Java-Struts 1.3.

При развертывании приложения входа в систему Struts 1.3 на локальном хосте 8080 (сервер Apache Tomcat 6.0.16). Я получаю следующую ошибку.

HTTP-статус 500 —


введите отчет об исключении

сообщение

описание Сервер обнаружил внутреннюю ошибку (), которая не позволила ему выполнить этот запрос.

исключение

org.apache.jasper.JasperException: произошло исключение при обработке JSP-страницы /Login.jsp в строке 13.

10: </head>
11: <body>
12: 
13:     <html:form action="/Login.do">
14:         Username : <html:text name="LoginForm" property="userName"/><br/>
15:         Password : <html:password name="LoginForm" property="password"/><br/>
16:         <html:submit value="Login"/>

Трассировки стека:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

первопричина

java.lang.NullPointerException: Module 'null' not found.
    org.apache.struts.taglib.TagUtils.getModuleConfig(TagUtils.java:755)
    org.apache.struts.taglib.TagUtils.getModuleConfig(TagUtils.java:735)
    org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:818)
    org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:488)
    org.apache.jsp.Login_jsp._jspx_meth_html_005fform_005f0(Login_jsp.java:105)
    org.apache.jsp.Login_jsp._jspService(Login_jsp.java:78)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note Полная трассировка стека основной причины доступна в журналах Apache Tomcat/6.0.16.


Апач Томкэт/6.0.16

Логин.jsp

  <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>     
      <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Form</title>
</head>

<body>
    <html:form action="/Login">
        Username : <html:text name="LoginForm" property="userName"/><br>
        Password : <html:password name="LoginForm" property="password"/><br>
        <html:submit value="Login"/>
    </html:form>
</body>
</html>

Struts-Config.xml

<?xml version="1.0" encoding="UTF-8"?>
<struts-config>
    <!-- ========== Form Bean Definitions ================================== -->
    <form-beans>
        <form-bean name="loginForm" type="org.suraj.form.LoginForm"/>
    </form-beans>
    <!-- ========== Action Mapping Definitions ============================= -->
    <action-mappings>
            <action name="loginForm" path="/Login" type="org.suraj.action.LoginAction" scope="request" input="/Login.jsp" validate="true">
                <forward name="failure" path="/Failure.jsp" redirect="true"/>
                <forward name="success" path="/Success.jsp" redirect="true"/>
            </action>
    </action-mappings>

</struts-config>

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <display-name>Login</display-name>
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>
            org.apache.struts.action.ActionServlet
        </servlet-class>

        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>

        <load-on-startup>2</load-on-startup>        
    </servlet>

    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>Login.jsp</welcome-file>
    </welcome-file-list>

</web-app>

LoginForm.java

package org.suraj.form;  

import org.apache.struts.action.ActionForm;

public class LoginForm extends ActionForm {


    private static final long serialVersionUID = 1029546343415365160L;
    private String userName;
    private String password;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }


}

LoginAction.java

package org.suraj.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.suraj.form.LoginForm;

public class LoginAction extends Action{

    private static final long serialVersionUID = -8847579600418060362L;

    private final static String SUCCESS = "success";

    private final static String FAILURE = "failure";

    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
    throws Exception {

        LoginForm loginForm = (LoginForm) form;

        if (loginForm.getUserName().equals(loginForm.getPassword())) {

            return mapping.findForward(SUCCESS);

        } else {

            return mapping.findForward(FAILURE);

        }
    }
}

person suraj_fale    schedule 21.03.2012    source источник


Ответы (7)


Это может быть по нескольким причинам. Проверьте здесь

Выдержка из ссылки,

Эта ошибка возникает, когда вы пытаетесь отобразить JSP до инициализации и активации Struts ActionServlet. Причинами этой ошибки обычно являются:

  • Вы не указали 2 для Struts ActionServlet в файле web.xml или
  • Вы указали выше, но Struts ActionServlet не инициализировался должным образом из-за ошибки. Проверьте записи файла журнала
    за период времени, когда сервер впервые запускается, чтобы убедиться, что он
    инициализирован правильно или
  • Вы получили доступ к JSP-странице напрямую, не выполняя никаких действий.
person Shashank Kadne    schedule 21.03.2012
comment
СЕРЬЕЗНЫЙ: невозможно инициализировать Struts ActionServlet из-за неожиданного исключения или ошибки, поэтому сервлет помечен как недоступный. Скорее всего, это связано с неправильной или отсутствующей библиотечной зависимостью. java.lang.NoClassDefFoundError: org/apache/commons/chain/config/ConfigParser - person suraj_fale; 21.03.2012
comment
Кажется, вам не хватает jar commons-chain-1.1.jar... добавьте этот jar в свою библиотеку - person Shashank Kadne; 21.03.2012
comment
Спасибо... Это из-за смешанных файлов jar. - person suraj_fale; 21.03.2012
comment
Этот ответ сам по себе не особенно полезен, поскольку он просто указывает людям на другую ссылку. Можете ли вы обобщить основные моменты или, по крайней мере, дать простое объяснение того, почему эта ссылка полезна? - person templatetypedef; 21.05.2014
comment
@templatetypedef: добавлен отрывок из ссылки. - person Shashank Kadne; 21.05.2014

Моя проблема возникла в приложении struts, имеющем в pom.xml maven-compiler-plugin с установкой источника/цели на 1.7 -> сбросить его на 1.5/1.6, это устранило мою проблему (сборка была выполнена с Java 7). Это приложение было развернуто на Tomcat 7, но с использованием java 6. Может быть, оно кому-нибудь поможет...

person Nolf    schedule 12.02.2016

Дайте нагрузку при запуске как 1 для ActionServlet в web.xml. это мыт исправить проблему.

person Pavan Kumar G    schedule 26.11.2016

Убедитесь, что сервер TomCat должен работать под управлением JDK 1.7. Не забудьте перезагрузить сервер после изменения.

person dellasavia    schedule 17.09.2013


У меня была та же проблема, но решение, которое я нашел, было другим. После того, как я проверил файл catalina.out, я понял, что у меня проблема с версией класса, расширенного из ValidatorForm. И, наконец, я решил обновить версию jdk. Это произошло потому, что я использовал другую версию для разработки, чем установленная версия в tomcat.

person jpenaab    schedule 11.02.2015

Помимо этой ошибки на экране входа в систему, я мог видеть сообщение об ошибке, в котором говорится, что мой файл struts-config.xml отсутствует в папке WEB-INF.

Я столкнулся с той же проблемой, но в моем случае у меня был проект maven

и у меня был файл struts-config.xml в папке src/main/resources/struts-config.xml.

И он не был помещен в папку src/main/webapp/WEB-INF.

Как только я поместил файл struts-config.xml в папку src/main/webapp/WEB-INF, моя ошибка исчезла, и я смог использовать приложение.

person Yogesh Gandhi    schedule 18.12.2020