Jsp java.lang.NullPointerException

moodoasis 2008-03-28 08:36:05
我写了一个空的index.jsp,结果还是出现了NullPointerException,生成的jsp clas如下
package org.apache.jsp;

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

public final class index_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 javax.el.ExpressionFactory _el_expressionfactory;
private org.apache.AnnotationProcessor _jsp_annotationprocessor;

public Object getDependants() {
return _jspx_dependants;
}

public void _jspInit() {
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
_jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
}

public void _jspDestroy() {
}

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

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


错误栈
致命的: サーブレット jsp のServlet.service()が例外を投げました
java.lang.NullPointerException
at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
2008/03/28 9:12:22 org.apache.catalina.core.StandardWrapperValve invoke
致命的: サーブレット jsp のServlet.service()が例外を投げました
java.lang.NullPointerException
at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)


不知原因何在,请大家指教
...全文
3849 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
iii5155 2012-07-31
  • 打赏
  • 举报
回复
真是太有用了!!,getServletConfig().getServletContext()). 这样的问题,就应该是包的问题,11楼说的有用,感谢!!
yangfanwh 2012-05-23
  • 打赏
  • 举报
回复
11楼很厉害,我专程登录回复,我是手动考了一个servlet.jar进去lib,也报了类似的错误,删掉后就好了。 Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: Unable to compile class for JSP: 再次感谢
yangfanwh 2012-05-23
  • 打赏
  • 举报
回复
11楼很厉害,我专程登录回复,我是手动考了一个servlet.jar进去lib,也报了类似的错误,删掉后就好了。
Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:

再次感谢
andylue2008 2012-02-24
  • 打赏
  • 举报
回复
哥们谢谢了,顶一下、
qulimin18 2010-12-02
  • 打赏
  • 举报
回复
是的,都是手动加了一个jsp-api.jar的原因。
这里还有一点要提的是.classpath中
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
如果没有则要加上。
liuj0990 2010-11-02
  • 打赏
  • 举报
回复
谢谢啦,我的问题也解决了。
jsp-api.jar
燿夜 2010-10-11
  • 打赏
  • 举报
回复
哇哦~~,太厉害了,原因就是手动拷贝了jsp-api.jar包到WEB-INF/lib目录下,谢谢啦~~~
lilp_ndsc 2010-04-19
  • 打赏
  • 举报
回复
太谢谢了!没想到呀!
foamflower 2008-09-03
  • 打赏
  • 举报
回复
谢了,我和同事一个下午都没搞定,真是太感谢了
foamflower 2008-09-03
  • 打赏
  • 举报
回复
谢了,我和同事一个下午都没搞定,真是太感谢了
zhenggz 2008-08-30
  • 打赏
  • 举报
回复
太厉害了
dps12345 2008-05-30
  • 打赏
  • 举报
回复
今天也遇到这种问题,现在已解决,原因是昨天拷贝了一个jsp-api.jar的包到WEB-INF/lib目录下,现在删除这个文件即可,估计是拷贝的这个文件跟tomcat有冲突
foxsh 2008-05-14
  • 打赏
  • 举报
回复
各位忽略了提问者所说的问题。
第一、moodoasis建立了一个空的或者是只有HTML代码的JSP页面。
第二、根据上面的错误信息,应该是在容器当中解析JSP页面的时候出现问题。
也就是说你就是在JSP当中写Try{}catch(){}也没用。因为页面还在解析。
所以,问题很奇怪。我也遇到了但是不知道问题出在哪里。
我的配置:Eclipse 3.3 + MyEclipse 6.01 + Tomcat 6.0 + jdk 1.5.0
太奇怪了···
我倒是找到过类似的问题和解决方法,不过貌似没用。

http://groups.google.com/group/jabsorb-user/browse_thread/thread/f67b1b50c0d05354

大家看一下,一起看看到底哪里的问题。
moodoasis 2008-05-12
  • 打赏
  • 举报
回复
顶一下
Brokenfango 2008-05-05
  • 打赏
  • 举报
回复
moodoasis 2008-05-05
  • 打赏
  • 举报
回复
我不是说一个空的jsp了吗?
FredWorks 2008-03-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 longshenls 的回复:]
java.lang.NullPointerException 
at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) 
提示不是很明白吗 index_jsp.java 的22行空指针
一般来说就是这里getServletConfig().getServletContext()).
如果getServletConfig() == null
那么你用getServletConfig().getServletContext()就会出现这个错误
你可以看看getServletConfig()是不是等于 null
[/Quote]

整个一废话。有点最基本jsp基础的人那个不知道是这里的getServletConfig()?问题是这些代码是web容器根据jsp编译而得到的,如果jsp正确,根本不会有这种结果出现。而任何jsp代码上的错误都有可能导致这个结果。那么,问题就在jsp代码上了。不给我们看jsp代码,神仙都不知道错误在那里。
longshenls 2008-03-28
  • 打赏
  • 举报
回复
java.lang.NullPointerException
at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
提示不是很明白吗 index_jsp.java 的22行空指针
一般来说就是这里getServletConfig().getServletContext()).
如果getServletConfig() == null
那么你用getServletConfig().getServletContext()就会出现这个错误
你可以看看getServletConfig()是不是等于 null
ChocooM 2008-03-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 FredWorks 的回复:]
你不给我们看你的源代码,给我们看这个玩意有什么用啊
[/Quote]

支持

其实最笨的方法就是将程序里重要容易出错的东西print log里,然后看看log到底是那里出了问题
FredWorks 2008-03-28
  • 打赏
  • 举报
回复
你不给我们看你的源代码,给我们看这个玩意有什么用啊
加载更多回复(2)

81,092

社区成员

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

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