2012-03-21 79 views
4

在localhost 8080(Apache Tomcat 6.0.16服务器)上deplyoing Struts 1.3 Login应用程序。我得到以下错误。在Java-Struts 1.3中发生异常 - “java.lang.NullPointerException:Module'null'找不到”

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) 

注意根源的完整堆栈跟踪在Apache Tomcat/6.0.16日志中可用。


的Apache Tomcat/6.0.16

的Login.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); 

     } 
    } 
} 

回答

5

这可能是多种原因。检查从链接here

提取物,

This error occurs when you try to display a JSP before the Struts ActionServlet has been initialized and is active. The causes for this error are usually either:

  • You failed to specify 2 for the Struts ActionServlet in your web.xml file or
  • You did specify the above, but the Struts ActionServlet didn't initialize properly because of an error. Check the log file entries
    for the time period when the Server first starts up to see if it
    initialized properly or
  • You accessed a JSP page directly without going through an action
+0

重度:无法初始化的Struts的ActionServlet由于意外的异常或错误抛出,因此标志着该servlet为不可用。最有可能的是,这是由于库依赖不正确或缺失。 java.lang.NoClassDefFoundError:组织/阿帕奇/公/连锁/配置/ ConfigParser – SRJ 2012-03-21 05:56:48

+0

看来你缺少一个罐子公共链1.1.jar ......这个jar添加到库 – 2012-03-21 06:22:09

+0

Thnaks ......因为混合的其jar文件。 – SRJ 2012-03-21 08:16:27

0

这可能是由于网络问题或systemconfig。问题

解决方案:

1)下载http://struts.apache.org/dtds/struts-config_1_3.dtd DTD文件,并将其复制到文件夹web-inf

2)struts-config文件Doctype标签更改为!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration1.3//EN" "**struts-config_1_3.dtd**">

1

验证是否Tomcat服务器必须JDK 1.7下运行。不要忘记在更改后重新启动服务器。

0

我有同样的问题,但我找到了解决办法是不同的。在检查了catalina.out文件后,我意识到我从ValidatorForm扩展的类的版本有问题。最后我解决了更新jdk版本的问题。这是因为我在开发中使用了不同的版本,而不是在tomcat中安装的版本。

2

我的问题出现在具有在pom.xml中Maven的编译器插件与源/目标设定为1.7 Struts应用程序 - >重置为1.5/1.6它固定我的问题(建筑用Java 7中完成)。该应用程序部署在Tomcat 7,但使用Java 6,也许它可以帮助别人......在web.xml启动时

1

给负载为1至ActionServlet的。 这是一个修复问题。