CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

为什么我们网站的TOMCAT每天都要停掉好几次,高手近来帮忙看看,分数不够可以另开帖

楼主buffon001(门神)2006-07-03 16:40:23 在 Java / Web 开发 提问

我们用的TOMCAT是4.1.29  
  日志文件里下面这段看不懂哪错了  
   
  2006-07-03   15:51:59   StandardWrapperValve[jsp]:   Servlet.service()   for   servlet   jsp   threw   exception  
  org.apache.jasper.JasperException  
  at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)  
  at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)  
  at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)  
  at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)  
  at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:343)  
  at   org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:131)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)  
  at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)  
  at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)  
  at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)  
  at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)  
  at   java.lang.Thread.run(Thread.java:534)  
  -----   Root   Cause   -----  
  java.lang.NullPointerException 问题点数:40、回复次数:11Top

1 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2006-07-03 16:43:20 得分 5

还是因为程序出问题了   才这样的。Top

2 楼ansys(JJ)回复于 2006-07-03 16:44:56 得分 0

空指针.Top

3 楼linshaojie(枫陵)回复于 2006-07-03 16:45:27 得分 0

-----   Root   Cause   -----  
  java.lang.NullPointerException  
   
  空指针引起的   异常。   查查代码吧Top

4 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2006-07-03 16:45:51 得分 5

你的tomcat是死掉   还是自动关闭     如果是自动关闭的话   应该是你的程序中在抛异常之后调用了  
  System.exit(1);Top

5 楼infowain(infowain)回复于 2006-07-03 16:59:26 得分 5

-----   Root   Cause   -----  
  java.lang.NullPointerException  
  因为你的程序问题,先查查看这个空指针在哪里出现的。Top

6 楼buffon001(门神)回复于 2006-07-03 17:10:04 得分 0

还有个问题就是用了一个网上找的验证码的代码也回出现异常  
  2006-07-03   15:51:59   StandardWrapperValve[jsp]:   Servlet.service()   for   servlet   jsp   threw   exception  
  org.apache.jasper.JasperException:   getOutputStream()   has   already   been   called   for   this   response  
  at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)  
  at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)  
  at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)  
  at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)  
  at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:343)  
  at   org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:131)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)  
  at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)  
  at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)  
  at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)  
  at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)  
  at   java.lang.Thread.run(Thread.java:534)  
  -----   Root   Cause   -----  
  java.lang.IllegalStateException:   getOutputStream()   has   already   been   called   for   this   response  
  at   org.apache.coyote.tomcat4.CoyoteResponse.getWriter(CoyoteResponse.java:600)  
  at   org.apache.coyote.tomcat4.CoyoteResponseFacade.getWriter(CoyoteResponseFacade.java:171)  
  at   org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:173)  
  at   org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:166)  
  at   org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:184)  
  at   org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:198)  
  at   org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:193)  
  at   org.apache.jsp.y_z_m_jsp._jspService(y_z_m_jsp.java:123)  
  at   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)  
  at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)  
  at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)  
  at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)  
  at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)  
  at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:343)  
  at   org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:131)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)  
  at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)  
  at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)  
  at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)  
  at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)  
  at   java.lang.Thread.run(Thread.java:534)Top

7 楼buffon001(门神)回复于 2006-07-03 17:16:19 得分 0

验证码代码  
  <%@   page   contentType="image/jpeg"   import="java.awt.*,  
  java.awt.image.*,java.util.*,javax.imageio.*"   %>  
  <%!  
  Color   getRandColor(int   fc,int   bc){//给定范围获得随机颜色  
                  Random   random   =   new   Random();  
                  if(fc>255)   fc=255;  
                  if(bc>255)   bc=255;  
                  int   r=fc+random.nextInt(bc-fc);  
                  int   g=fc+random.nextInt(bc-fc);  
                  int   b=fc+random.nextInt(bc-fc);  
                  return   new   Color(r,g,b);  
                  }  
  %>  
  <%  
  //设置页面不缓存  
  response.setHeader("Pragma","No-cache");  
  response.setHeader("Cache-Control","no-cache");  
  response.setDateHeader("Expires",   0);  
   
  //   在内存中创建图象  
  int   width=60,   height=20;  
  BufferedImage   image   =   new   BufferedImage(width,   height,   BufferedImage.TYPE_INT_RGB);  
   
  //   获取图形上下文  
  Graphics   g   =   image.getGraphics();  
   
  //生成随机类  
  Random   random   =   new   Random();  
   
  //   设定背景色  
  g.setColor(getRandColor(200,250));  
  g.fillRect(0,   0,   width,   height);  
   
  //设定字体  
  g.setFont(new   Font("Times   New   Roman",Font.PLAIN,18));  
   
  //画边框  
  //g.setColor(new   Color());  
  //g.drawRect(0,0,width-1,height-1);  
   
  //   随机产生155条干扰线,使图象中的认证码不易被其它程序探测到  
  g.setColor(getRandColor(160,200));  
  for   (int   i=0;i<155;i++)  
  {  
    int   x   =   random.nextInt(width);  
    int   y   =   random.nextInt(height);  
                  int   xl   =   random.nextInt(12);  
                  int   yl   =   random.nextInt(12);  
    g.drawLine(x,y,x+xl,y+yl);  
  }  
   
  //   取随机产生的认证码(4位数字)  
  String   sRand="";  
  for   (int   i=0;i<4;i++){  
          String   rand=String.valueOf(random.nextInt(10));  
          sRand+=rand;  
          //   将认证码显示到图象中  
          g.setColor(new   Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));  
  //调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成  
          g.drawString(rand,13*i+6,16);  
  }  
   
  //   将认证码存入SESSION  
  session.setAttribute("rand_num",sRand);  
   
  //   图象生效  
  g.dispose();  
   
  //   输出图象到页面  
  ImageIO.write(image,   "JPEG",   response.getOutputStream());  
  %>  
  Top

8 楼sun8087(.Net@ChangZhou)回复于 2006-07-03 17:33:10 得分 5

-----   Root   Cause   -----  
  java.lang.NullPointerException  
   
  这个空指针,一般会是什么代码引起的呢//Top

9 楼shangqiao(伤桥(千万不要理解为我可怜桥,是“伤心桥下”的缩写))回复于 2006-07-03 17:44:52 得分 10

我记得servlet规范是不能既调用getWriter又调用getOutputStream的,因为在jsp中默认调用getWriter,所以当然就不能再调用getOutputStream了,将代码挪到servlet中去吧Top

10 楼sun8087(.Net@ChangZhou)回复于 2006-07-04 10:56:31 得分 5

upTop

11 楼kwok2079(kwok)回复于 2006-07-04 11:04:37 得分 5

将你的验证码文件中的注释去掉,不能有System.out.println(),%><%之间不能有空格或换行。  
  因为这些都是调用了getWriter(),在servlet规范中是不能既调用getWriter又调用getOutputStream的。如果还没解决,找一下jsp文件生成的.java文件,在里面找出所有调用getWriter()方法的地方。Top

相关问题

关键词

得分解答快速导航

  • 帖主:buffon001
  • OnlyFor_love
  • OnlyFor_love
  • infowain
  • sun8087
  • shangqiao
  • sun8087
  • kwok2079

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo