java.lang.NullPointerException 问题

lovely_baO 2012-08-27 09:39:10
用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 菜鸟一枚~~ 希望各位能够说的简单点~

谢谢~~~
...全文
1161 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
xixisi123 2013-06-17
  • 打赏
  • 举报
回复
在tomcat的配置文件context.xml文件的<Context>下加上这个代码 <Loader delegate="true" /> 试试看
anzhitinglan1 2013-06-15
  • 打赏
  • 举报
回复
恩 源码是:rs=st.executeQuery(sql);
anzhitinglan1 2013-06-15
  • 打赏
  • 举报
回复
空指针异常怎么解决?
scbb 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

重建了 还是跟之前一样的问题
%>_<%
引用 14 楼 的回复:

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

检查ww:property等类似标签,传给他们的值有null吗?
无敌波哥8 2012-08-27
  • 打赏
  • 举报
回复
有种最笨的方法是 新建一个项目,然后把所有的代码都拷贝到新项目里。
就是新建一个JSP,然后把以前的jsp内容复制到新建的里面。
哈哈。
lovely_baO 2012-08-27
  • 打赏
  • 举报
回复
是重新发布的~~
clean了 还是不行~
[Quote=引用 13 楼 的回复:]

Project clean下,重新编译,重新发布吧,服务器重启再试试看。
(确认是重新发布了。 看生成文件的时间。)
我猜应该不是程序的错误。
[/Quote]
lovely_baO 2012-08-27
  • 打赏
  • 举报
回复
重建了 还是跟之前一样的问题
%>_<%
[Quote=引用 14 楼 的回复:]

可以新建个workspace,把原来的项目导入,重新部署试试看,就可以排除是不是删除产生的问题了
[/Quote]
谢潇雨 2012-08-27
  • 打赏
  • 举报
回复
可以新建个workspace,把原来的项目导入,重新部署试试看,就可以排除是不是删除产生的问题了
scbb 2012-08-27
  • 打赏
  • 举报
回复
Project clean下,重新编译,重新发布吧,服务器重启再试试看。
(确认是重新发布了。 看生成文件的时间。)
我猜应该不是程序的错误。
lovely_baO 2012-08-27
  • 打赏
  • 举报
回复
编译后文件:

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);
}
}


只贴了上面的一部分 看不太懂这个~
lovely_baO 2012-08-27
  • 打赏
  • 举报
回复
对了~ 我之前用的是myeclipse9.0 重装了10.0之后 用的还是9.0的工作目录 所以配置文件夹什么的 都没有改的~ 之后删除了.metadata文件夹之后 再重新导入目录就有这个问题了
是不是跟添加的一些JAR包有关系??
lovely_baO 2012-08-27
  • 打赏
  • 举报
回复
我觉得代码有问题的可能性不大吧~ 之前都可以运行的~ 就是在删除了那个文件夹之后才出现的这个问题~
所以会不会是哪里配置有问题啊?

[Quote=引用 5 楼 的回复:]

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

楼主要设法去找找所生成Servlet的Java源码看看了:org/apache/jsp/login_jsp.java
[/Quote]
大卷小渣渣 2012-08-27
  • 打赏
  • 举报
回复
500一般是代码中的方法问题吧,跟你删除的那个文件没关系的。仔细找到编译后的文件看看。
wangfang258 2012-08-27
  • 打赏
  • 举报
回复
是不是你的路径出现了问题,一般出现500 400这些就是路径的问题
brightyq 2012-08-27
  • 打赏
  • 举报
回复
.metadata文件夹 记录了eclipse工作环境的一些配置,记录了对eclipse的一些配置。
删掉是可以,不过删掉之后,

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

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

楼主上面说的空指针的问题,你把工程重新导入进来,并配置好tomcat,编译路径,之后刷新整个工程重新编译就应该好了。不是什么大问题。
MiceRice 2012-08-27
  • 打赏
  • 举报
回复
楼主这个比较麻烦了,全用的标签,并没有直接JSP代码。

楼主要设法去找找所生成Servlet的Java源码看看了:org/apache/jsp/login_jsp.java
  • 打赏
  • 举报
回复
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
lovely_baO 2012-08-27
  • 打赏
  • 举报
回复
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>
MiceRice 2012-08-27
  • 打赏
  • 举报
回复
java.lang.NullPointerException
org.apache.jsp.login_jsp._jspInit(login_jsp.java:27)

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

JSP贴出来看看吧,应该前几行。
scbb 2012-08-27
  • 打赏
  • 举报
回复
贴全部login.jsp吧。 那个行号是login.jsp被转换成servelt后的java代码的行号。
加载更多回复(1)

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧