当前位置:编程学习 > JAVA >>

java.lang.NullPointerException 问题

用myeclipse10.0 刚开始的时候是可以的~ 之后把.metadata文件夹删掉 重新导入项目之后,可以正常编译,但是运行的时候,页面无法显示,会提示java.lang.NullPointerException 这样的错误:
具体错误如下:
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:55)
root cause

java.lang.NullPointerException
org.apache.jsp.login_jsp._jspInit(login_jsp.java:27)
org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:55)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.


login.jsp 第27行代码如下:
<form action="main.jsp" target="_top" method="POST" name="loginForm" id="loginForm" type="POST">



请各位大神帮帮忙~ 看看问题可能出现在哪里~  刚开始做JAVA  菜鸟一枚~~  希望各位能够说的简单点~ 

谢谢~~~ --------------------编程问答-------------------- 贴全部login.jsp吧。 那个行号是login.jsp被转换成servelt后的java代码的行号。 --------------------编程问答-------------------- java.lang.NullPointerException
org.apache.jsp.login_jsp._jspInit(login_jsp.java:27)

27行不是指JSP,而是指JSP所生成的Servlet的源码。

JSP贴出来看看吧,应该前几行。 --------------------编程问答-------------------- jsp页面:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <%@ taglib prefix="ww" uri="webwork"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>welcome</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script language="JavaScript" type="text/JavaScript">

function openChgPwd()
{
window.open("changePwd.jsp", "_self");
}
function openWelcome()
{
window.open("main[1].htm", "_top");
}

function submitForm() {
document.all.loginForm.action = "loginAction.action?m_action=login";
document.all.loginForm.target = "_top";
document.all.loginForm.submit();
}
</script>
</head>
<body leftmargin="0" topmargin="0">
<form action="main.jsp" target="_top" method="POST" name="loginForm" id="loginForm" type="POST">
<table width="800" height="600" border="0" align="center">
  <tr>
    <th valign="top" background="images/bg_denglu.GIF" scope="col"><table width="384" height="555" border="0" align="left" cellpadding="0" cellspacing="0">
      
        <tr>
          <td width="100%" height="403"> </td>
        </tr>
        <tr>
          <td width="100%" height="150" valign="top"><table width="70%" height="139" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td><table width="63%" border="0" align="center" cellpadding="0" cellspacing="0">
              <ww:if test="errorMessage != null">
<tr>
                  <td align="center" colspan="2" class="loginTitle"><font color="red"><ww:property value="errorMessage"/></font> </td>
                </tr>

 </ww:if>

              
                <tr>                
                  <td width="62%" valign="middle" class="loginTitle">用户名:</td>
                  <td width="62%" align="right"><input type="text" name="model.username" size="12" class="loginInput" onMouseOver="this.focus();" value=<ww:property value="username"/>>                  </td>
                </tr>
                <tr>
                  <td class="loginTitle"> </td>
                  <td valign="top">  </td>
                </tr>
                <tr>
                  <td width="62%" valign="middle" class="loginTitle">密  码:</td>
                  <td width="62%" align="right" valign="top"><input type="password" name="model.password" size="16" class="loginPasswd" onMouseOver="this.focus();" onkeydown="if(event.keyCode==13) submitForm()" value=<ww:property value="password"/>>                  </td>
                </tr>
              </table></td>
            </tr>
              <tr>
                <td height="67" align="center"><input name="Submit" type="button" class="loginButton" value="登 录" onClick="submitForm()"> </td>
              </tr>
          </table></td>
        </tr>
      
    </table></th>
  </tr>
</table>
</form>
</body>

</html>
--------------------编程问答-------------------- document.all.loginForm.action = "loginAction.action?m_action=login";


<form action="main.jsp" target="_top" method="POST" name="loginForm" id="loginForm" type="POST">
两个的action怎么不一样,既然是一个submit --------------------编程问答-------------------- 楼主这个比较麻烦了,全用的标签,并没有直接JSP代码。

楼主要设法去找找所生成Servlet的Java源码看看了:org/apache/jsp/login_jsp.java  --------------------编程问答-------------------- .metadata文件夹 记录了eclipse工作环境的一些配置,记录了对eclipse的一些配置。
删掉是可以,不过删掉之后,

对eclipse的配置就还原为默认的了,需重新配置;
eclipse下也没有了原来的工程,需要重新导入。

删掉之后没有什么错误,只是上面这些需要重新配置了。

楼主上面说的空指针的问题,你把工程重新导入进来,并配置好tomcat,编译路径,之后刷新整个工程重新编译就应该好了。不是什么大问题。 --------------------编程问答-------------------- 是不是你的路径出现了问题,一般出现500  400这些就是路径的问题 --------------------编程问答-------------------- --------------------编程问答-------------------- 500一般是代码中的方法问题吧,跟你删除的那个文件没关系的。仔细找到编译后的文件看看。 --------------------编程问答-------------------- 我觉得代码有问题的可能性不大吧~ 之前都可以运行的~ 就是在删除了那个文件夹之后才出现的这个问题~ 
所以会不会是哪里配置有问题啊?

引用 5 楼  的回复:
楼主这个比较麻烦了,全用的标签,并没有直接JSP代码。

楼主要设法去找找所生成Servlet的Java源码看看了:org/apache/jsp/login_jsp.java
--------------------编程问答-------------------- 对了~  我之前用的是myeclipse9.0  重装了10.0之后 用的还是9.0的工作目录 所以配置文件夹什么的 都没有改的~  之后删除了.metadata文件夹之后 再重新导入目录就有这个问题了  
是不是跟添加的一些JAR包有关系?? --------------------编程问答-------------------- 编译后文件:

package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

public final class login_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();

  private static java.util.List _jspx_dependants;

  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fww_005fif_005ftest;
  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fww_005fproperty_005fvalue_005fnobody;

  private javax.el.ExpressionFactory _el_expressionfactory;
  private org.apache.AnnotationProcessor _jsp_annotationprocessor;

  public Object getDependants() {
    return _jspx_dependants;
  }

  public void _jspInit() {
    _005fjspx_005ftagPool_005fww_005fif_005ftest = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _005fjspx_005ftagPool_005fww_005fproperty_005fvalue_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
    _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
  }

  public void _jspDestroy() {
    _005fjspx_005ftagPool_005fww_005fif_005ftest.release();
    _005fjspx_005ftagPool_005fww_005fproperty_005fvalue_005fnobody.release();
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;


    try {
      response.setContentType("text/html; charset=UTF-8");
      pageContext = _jspxFactory.getPageContext(this, request, response,
       null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

      out.write("\r\n");
      out.write(" \r\n");
      out.write("<html>\r\n");
      out.write("<head>\r\n");
      out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n");
      out.write("<title>welcome</title>\r\n");
      out.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"css/style.css\">\r\n");
      out.write("<script language=\"JavaScript\" type=\"text/JavaScript\">\r\n");
      out.write("\r\n");
      out.write("function openChgPwd()\r\n");
      out.write("{\r\n");
      out.write("\twindow.open(\"changePwd.jsp\", \"_self\");\r\n");
      out.write("}\r\n");
      out.write("function openWelcome()\r\n");
      out.write("{\r\n");
      out.write("\twindow.open(\"main[1].htm\", \"_top\");\r\n");
      out.write("}\r\n");
      out.write("\r\n");
      out.write("function submitForm() {\t\r\n");
      out.write("\tdocument.all.loginForm.action = \"loginAction.action?m_action=login\";\r\n");
      out.write("\tdocument.all.loginForm.target = \"_top\";\r\n");
      out.write("\tdocument.all.loginForm.submit();\r\n");
      out.write("}\r\n");
      out.write("</script>\r\n");
      out.write("</head>\r\n");
      out.write("<body leftmargin=\"0\" topmargin=\"0\">\r\n");
      out.write("<form action=\"main.jsp\" target=\"_top\" method=\"POST\" name=\"loginForm\" id=\"loginForm\" type=\"POST\">\r\n");
      out.write("<table width=\"800\" height=\"600\" border=\"0\" align=\"center\">\r\n");
      out.write("  <tr>\r\n");
      out.write("    <th valign=\"top\" background=\"images/bg_denglu.GIF\" scope=\"col\"><table width=\"384\" height=\"555\" border=\"0\" align=\"left\" cellpadding=\"0\" cellspacing=\"0\">\r\n");
      out.write("      \r\n");
      out.write("        <tr>\r\n");
      out.write("          <td width=\"100%\" height=\"403\"> </td>\r\n");
      out.write("        </tr>\r\n");
      out.write("        <tr>\r\n");
      out.write("          <td width=\"100%\" height=\"150\" valign=\"top\"><table width=\"70%\" height=\"139\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n");
      out.write("            <tr>\r\n");
      out.write("              <td><table width=\"63%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n");
      out.write("              ");
      if (_jspx_meth_ww_005fif_005f0(_jspx_page_context))
        return;
      out.write("\r\n");
      out.write("\r\n");
      out.write("              \t\r\n");
      out.write("                <tr>                \t\r\n");
      out.write("                  <td width=\"62%\" valign=\"middle\" class=\"loginTitle\">用户名:</td>\r\n");
      out.write("                  <td width=\"62%\" align=\"right\"><input type=\"text\" name=\"model.username\" size=\"12\" class=\"loginInput\" onMouseOver=\"this.focus();\" value=");
      if (_jspx_meth_ww_005fproperty_005f1(_jspx_page_context))
        return;
      out.write(">                  </td>\r\n");
      out.write("                </tr>\r\n");
      out.write("                <tr>\r\n");
      out.write("                  <td class=\"loginTitle\"> </td>\r\n");
      out.write("                  <td valign=\"top\">  </td>\r\n");
      out.write("                </tr>\r\n");
      out.write("                <tr>\r\n");
      out.write("                  <td width=\"62%\" valign=\"middle\" class=\"loginTitle\">密  码:</td>\r\n");
      out.write("                  <td width=\"62%\" align=\"right\" valign=\"top\"><input type=\"password\" name=\"model.password\" size=\"16\" class=\"loginPasswd\" onMouseOver=\"this.focus();\" onkeydown=\"if(event.keyCode==13) submitForm()\" value=");
      if (_jspx_meth_ww_005fproperty_005f2(_jspx_page_context))
        return;
      out.write(">                  </td>\r\n");
      out.write("                </tr>\r\n");
      out.write("              </table></td>\r\n");
      out.write("            </tr>\r\n");
      out.write("              <tr>\r\n");
      out.write("                <td height=\"67\" align=\"center\"><input name=\"Submit\" type=\"button\" class=\"loginButton\" value=\"登 录\" onClick=\"submitForm()\"> </td>\r\n");
      out.write("              </tr>\r\n");
      out.write("          </table></td>\r\n");
      out.write("        </tr>\r\n");
      out.write("      \r\n");
      out.write("    </table></th>\r\n");
      out.write("  </tr>\r\n");
      out.write("</table>\r\n");
      out.write("</form>\r\n");
      out.write("</body>\r\n");
      out.write("\r\n");
      out.write("</html>\r\n");
    } catch (Throwable t) {
      if (!(t instanceof SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          try { out.clearBuffer(); } catch (java.io.IOException e) {}
        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
      }
    } finally {
      _jspxFactory.releasePageContext(_jspx_page_context);
    }
  }


只贴了上面的一部分 看不太懂这个~  --------------------编程问答-------------------- Project clean下,重新编译,重新发布吧,服务器重启再试试看。
(确认是重新发布了。 看生成文件的时间。)
我猜应该不是程序的错误。 --------------------编程问答-------------------- 可以新建个workspace,把原来的项目导入,重新部署试试看,就可以排除是不是删除产生的问题了 --------------------编程问答-------------------- 重建了  还是跟之前一样的问题   
%>_<%  
引用 14 楼  的回复:
可以新建个workspace,把原来的项目导入,重新部署试试看,就可以排除是不是删除产生的问题了
--------------------编程问答-------------------- 是重新发布的~~
clean了  还是不行~
引用 13 楼  的回复:
Project clean下,重新编译,重新发布吧,服务器重启再试试看。
(确认是重新发布了。 看生成文件的时间。)
我猜应该不是程序的错误。
--------------------编程问答-------------------- 有种最笨的方法是 新建一个项目,然后把所有的代码都拷贝到新项目里。
就是新建一个JSP,然后把以前的jsp内容复制到新建的里面。
哈哈。 --------------------编程问答--------------------
引用 15 楼  的回复:
重建了  还是跟之前一样的问题   
%>_<%  
引用 14 楼  的回复:

可以新建个workspace,把原来的项目导入,重新部署试试看,就可以排除是不是删除产生的问题了


检查ww:property等类似标签,传给他们的值有null吗? --------------------编程问答-------------------- loginAction 这个错误是在后台的把 ,看看loginAction断点下 --------------------编程问答-------------------- 空指针异常怎么解决? --------------------编程问答-------------------- 恩  源码是:rs=st.executeQuery(sql); --------------------编程问答-------------------- 在tomcat的配置文件context.xml文件的<Context>下加上这个代码
<Loader delegate="true" />  试试看

 
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,