各位好,最近一个问题老是没有解决,现在贴出来请大家帮帮忙!下面是控制台出现的异常信息。2010-2-10 16:03:28 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet debugjsp threw exception
java.lang.NullPointerException
        at org.apache.jsp.sendgroupmsg111_jsp._jspService(sendgroupmsg111_jsp.java:236)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava: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:191)
        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:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.ja
va:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
        at java.lang.Thread.run(Thread.java:619)
现在我把源程序贴出来,请大家帮忙看看那里除了问题,谢谢!
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ include file="dblink.jsp"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>短信平台v1.0</title>
<link href="css/cont.css" rel="stylesheet" type="text/css">
<script language="javascript" type="text/javascript" src="js/My97DatePicker/WdatePicker.js"></script>
<script src="js/menu.js"></script>
<script  type="text/javascript" src="js/limitWord1.js"></script> 
<style type="text/css">
<!--
.STYLE1 {color: #EF8D3D}
.STYLE2 {color: #6699FF}
-->
</style>
</head>
<script type="text/javascript">
$(function() {
    $('#datetime').datepicker({
     duration: '',
        showTime: true,
        constrainInput: false
     });
});
</script>

解决方案 »

  1.   


    <script language="javascript" type="text/javascript">  
    <!--  
    myAddEventListener(window, "load", testStatInput);  
    function testStatInput(){  
      statInput('content', 70, {_max : 'stat_max', _total : 'stat_total', _left : 'stat_left', _hint : true});  
    }  
    -->  
    </script> 
    <%
      String Log=(String)session.getAttribute("log");
      if(Log==null ){
         out.println("<script language='javascript'>alert('您还没有登录!');window.location.href='login.jsp';</script>");
     }
      if(Log!=null && Log.equals("OK"))
      {}
      else{
          out.println("<script language='javascript'>alert('登录不成功!');window.location.href='login.jsp';</script>");
      }
      
      String username=(String)session.getAttribute("Username");
      username=username.trim();
      //String re=(String)session.getAttribute("Re");
      String spnumber=(String)session.getAttribute("spnumber");
      spnumber=spnumber.trim();
    %>
    <%
      String super1="super";
      sql1="select * from SP_NQManager where SP_Username='"+username+"'";
      Statement stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
      r1=stmt1.executeQuery(sql1);
      
      
     // String bigclass="";
      String smallclass="";
      String supper="";
      int  smallclassLength=0;
      if(r1.next()){
      smallclass=r1.getString("SP_Smallclass");
      if(smallclass!=null){
      smallclass=smallclass.trim();
      smallclassLength=smallclass.length();
      }
      supper=r1.getString("SP_Super");
      }
      r1.close();
      stmt1.close();  
    %><%!
      public  boolean isCheckedKuang(String str,int inKuangLength,String inKuangValue)
       {
         if(inKuangLength>=1)
       {
        for(int i=0;i<inKuangLength;i++)
        {
           if(inKuangValue.substring(i,i+1).equals(str))
       return true;
        }
       }   return false;
       }
      public  boolean isCheckedDoThing(String str,int inPowerLength,String inPowerValue)
      {
        inPowerLength=inPowerLength/2;
        if(inPowerLength>=1)
         {
          for(int i=0,j=0;i<inPowerLength;i++)
        {
       if(inPowerValue.substring(j,j+2).equals(str))
    {
               return  true;
    }
    j=j+2;
         }
         }  return false;
      }//%><body class="right_body">
    <table width="100%" border="0" cellspacing="0" cellpadding="0" style="margin-bottom:5px;">
      <tr>
        <td width="13"><img src="images/2_11.gif" width="13" height="41" /></td>
        <td valign="top" background="images/2_13.gif"><table width="100%" height="30" border="0" cellpadding="0" cellspacing="0">
          <tr><td width="11" height="28" align="center">&nbsp;</td>
           
            <td width="131" height="28" align="center" class="right_font" id="t1" style="background:url(images/3_13.gif) no-repeat;padding-top:8px;" >短信群发</td>
           
             
            <td height="28">&nbsp;</td>
          </tr>
        </table></td>
        <td width="13"><img src="images/2_15.gif" width="13" height="41" /></td>
      </tr>
    </table>
     <table width="98%" border="0" cellpadding="0" cellspacing="2" >
      <tr>
        <td>

    <form id="form1" name="form1" method="post" action="sendgroupmsg_action.jsp" style="margin:0px">
      <table width="98%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#a8c7ce">
            <tr>
              <td height="25" colspan="3" bgcolor="#C9D8FC" class="STYLE10"><div align="left">&nbsp;
                     
                      短信群发
              </div></td>
            </tr>
            <tr>
              <td width="91" height="25" valign="middle" bgcolor="#FFFFFF"><div align="right">所属临时分组:</div></td>
              <td width="354" height="25" valign="middle" bgcolor="#FFFFFF">&nbsp;&nbsp;
              
              <%
       String buffersql="select max(groupid) as groupid from SMGP_APP1_Buffer_WebSingleSend ";
       Statement bufferstmt=conn.createStatement();
       ResultSet bufferrs=bufferstmt.executeQuery(buffersql);
       int groupcount=0;
       if(bufferrs.next()){
        groupcount=bufferrs.getInt("groupid");
       }
       bufferrs.close();
       bufferstmt.close();
       groupcount=groupcount+1;
      %>
              <input name="groupcount" type="text" class="inptustyle" id="groupcount"   value="<%= groupcount%>" size="6" maxlength="4"/>
            
              </td>
              <td width="679" rowspan="5" valign="top" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td><iframe src="smscat_choice.jsp"  height=30 width=300  frameborder=0  id=catchoice name=catchoice ></iframe></td>
                  </tr>
                <tr>
                  <td><iframe src="kongde.jsp"  height=260 width=400  frameborder=0  id=smslist name=smslist ></iframe></td>
                  </tr>
              </table></td>
            </tr>
            <tr>
              <td width="91" height="100" valign="top" bgcolor="#FFFFFF"><div align="right">
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <p>短信内容:</p>
              </div></td>
              <td valign="middle" bgcolor="#FFFFFF"><div class="gray"><font color="#3399CC"> &nbsp;&nbsp;*最多可输入 <span id="stat_max" class="b_light"></span>,当前共 <span id="stat_total" class="b_light"></span>,还可输入 <span id="stat_left" class="b_light"></span></font> </div> &nbsp;&nbsp;<textarea name="content" cols="45" rows="12" class="inptustyle" id="content" style="overflow-y:hidden" onfocus="ss=setInterval(sp,600)" onblur="clearInterval(ss)"></textarea></td>
            </tr>
            <tr>
              <td width="91" height="30" valign="middle" bgcolor="#FFFFFF"><div align="right">SP号:</div></td>
              <td width="354" valign="middle" bgcolor="#FFFFFF">&nbsp;&nbsp;<%= spnumber%><input name="spno" type="text" class="inptustyle" id="spno" size="12"   maxlength="15"/>
              *sp号不能多于19位</td>
              </tr>
     <tr>
              <td width="91" height="30" valign="middle" bgcolor="#FFFFFF"><div align="right">发送时间:</div></td>
              <td width="354" valign="middle" bgcolor="#FFFFFF">&nbsp;&nbsp;
                <input name="time" type="text" class="inptustyle" id="time" onFocus="new WdatePicker(this,'%Y-%M-%D %h:%m',true,'default')" maxlength="15"/></td>
              </tr>
            <tr>
              <td width="91" height="30" valign="middle" bgcolor="#FFFFFF"><div align="right">发送对象:</div></td>
              <td width="354" valign="middle" bgcolor="#FFFFFF">&nbsp;
     
            <%
    if(supper!=null||isCheckedDoThing("13",smallclassLength,smallclass)){%>   
            <input type="radio" name="send" id="radio7" value="5" onclick="member11()"/>
            联系簿
    <%}%>
                </td>
              </tr>
          </table>
       
          <table width="98%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#a8c7ce" id="dismember"   style="display:none">
            <tr>
              <td width="92" height="25" bgcolor="#FFFFFF"><div align="right">联系人号码:</div></td>
              <td width="1033" height="25" bgcolor="#FFFFFF" id="msg">&nbsp;<span class="STYLE2">请在下面搜索区中搜索符合条件的联系人信息,进行号码添加!</span></td>
            </tr>
          </table>
      
      <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0" class="tablesty">
            <tr>
              <td width="94">&nbsp;</td>
              <td width="1032" height="30">&nbsp;
                <input name="button" type="submit" class="buttonstyle" id="button" value="提交" /></td>
            </tr>
          </table>
    </form>
    </td>
      </tr>
    </table>
    <table width="100%" border="0" cellpadding="0" cellspacing="0" id="member1" style="display:none" >
       <tr>
         <th scope="col"><iframe src="center/member_dis.jsp" width="98%" height="600" scrolling=NO frameborder=0 id=notopen  name=notopen ></iframe></th>
       </tr>
     </table>
    <script language="javascript">
       function member11(){
          member1.style.display="";
      dismember.style.display="";
      }
    </script>
    <%
    conn.close();%>
    </body>
    </html>
      

  2.   

    是不是你没有那个jdk的.jar啊 ,导进去吧。
      

  3.   

    好像不是这个原因,出项这种异常的情况是这样的,当我重新启动tomcat后,程序没有抛出任何异常,页面也能够正常访问,不过过了一段时间后异常就出现了,并且页面也不能打开,是不是某些地方共享出现了问题,而这种问题是哪方面引起的呢?
      

  4.   

    在网上给你找了有三个原因
    1.servlet或jsp中,重复调用response的 getOutputStream(),response.getWriter()方法
    2.form表单里没有 method="post" action=""参数
    3.看JDBC操纵数据库的代码,仔细看,例如调用的对象的属性为null。Connection conn=null; 之后之就调用了conn.??的方法感觉是你的<form id="form1" name="form1" method="post" action="sendgroupmsg_action.jsp" style="margin:0px"> 
    的事 你把POST 改成 Get试下
      

  5.   

    常识问题啊你的所有的session.getAttribute("...")都是直接转型的,如果session取值为空的话就会报空指针异常的。应该是先用Object对象去接收。然后判断是否为空不为空才转型。
      

  6.   

    session的取值是获取的数据库里的必填字段,应该没有为空的情况啊,不过程序是tomcat重新启动后的过了好长时间才出现的问题,访问正常,就是过了一段时间后才出现的异常,这不服务器重启到现在还能正常运行,并且没有异常出现,说不定什么时候又会出现异常