org.apache.jasper.JasperException
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:207)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:536)
root cause java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(StringTokenizer.java:232)
at org.apache.jsp.executeroolbook_jsp._jspService(executeroolbook_jsp.java:91)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:536)

解决方案 »

  1.   

    字符分割出错,java.util.NoSuchElementException,java.util.StringTokenizer.nextToken
    没有这样的元素!!
      

  2.   

    不是的,我有偶尔有时候是可以插入的
    如果哪位不嫌烦的话可以帮我看看代码:
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
    <%@ page import="java.util.*"%>
    <jsp:useBean id="DBConnection" scope="page" class="com.raecom.DBConnection"/>
    <%
      
       String h=request.getParameter("hours");
       String p=request.getParameter("project");
       String d=request.getParameter("datetime");
       String stractive=new String(request.getParameter("active").getBytes("8859_1"));
       String otse=new String(request.getParameter("otse").getBytes("8859_1"));
       String ot=request.getParameter("ot");
       //out.print(d);
       //if(true)
       //{return;}
       
       ArrayList A1=new ArrayList();
       ArrayList A2=new ArrayList();
       ArrayList A3=new ArrayList();
       ArrayList A4=new ArrayList();
       ArrayList A5=new ArrayList();
       ArrayList A6=new ArrayList();
         StringTokenizer st1 = new StringTokenizer(d,"$$");
       StringTokenizer st2 = new StringTokenizer(p,"$$");
       StringTokenizer st3 = new StringTokenizer(stractive,"$$");
       StringTokenizer st4 = new StringTokenizer(h,"$$");
       StringTokenizer st5 = new StringTokenizer(otse,"$$");
       StringTokenizer st6 = new StringTokenizer(ot,"$$");
       while (st1.hasMoreTokens()) {
          A1.add(st1.nextToken());// 这里依次给赋值
      A2.add(st2.nextToken());
      A3.add(st3.nextToken());
      A4.add(st4.nextToken());
      A5.add(st5.nextToken());
      A6.add(st6.nextToken());

        }
        //然后转成数组
       Object[] arr1=A1.toArray();
       Object[] arr2=A2.toArray();
       Object[] arr3=A3.toArray();
       Object[] arr4=A4.toArray();
       Object[] arr5=A5.toArray();
       Object[] arr6=A6.toArray();  Connection conn=DBConnection.getConnectionToAccess(application.getRealPath("data/RAE-Systems.mdb"));
      Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      String strname=(String)session.getValue("Use_Name");
       for(int i=0;i<arr1.length;i++)
       {
          String sql="insert into roolbook(Use_Name,Cur_Date,PRO_Name,Active,Pure_hour) values('"+strname+"','"+arr1[i]+"','"+arr2[i]+"','"+arr3[i]+"','"+arr4[i]+"')"; 
          try{
          stmt.executeUpdate(sql);
      }catch(Exception e)
          {
        response.sendRedirect("error.jsp?error=2");
      }
        }
    stmt.close();
    if(otse!=""||ot!="0")
    {
      Statement stmt2=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    for(int i=0;i<arr1.length;i++)
       {
          String sql1="insert into roolbook(Use_Name,Cur_Date,PRO_Name,Active,Pure_hour) values('"+strname+"','"+arr1[i]+"','"+arr5[i]+"','"+arr5[i]+"','"+arr6[i]+"')"; 
          try{
          stmt2.executeUpdate(sql1);
      }catch(Exception e)
          {
        response.sendRedirect("error.jsp?error=2");
      }
        }
    stmt2.close();
    }
    if(conn!=null)
    {
    conn.close();
    }
    %>
    <script>
    <!--
    alert("添加成功!请确定!");
    window.location.href="index.jsp"; 
    -->
    </script>
      

  3.   

    注意下面这段:while (st1.hasMoreTokens()) {
          A1.add(st1.nextToken());// 这里依次给赋值
      A2.add(st2.nextToken());
      A3.add(st3.nextToken());
      A4.add(st4.nextToken());
      A5.add(st5.nextToken());
      A6.add(st6.nextToken());

        }这种写法必须保证传入的6个参数分割后都有相同数量的元素(准确说是后面5个的元素数量要必须要多于第一个),否则就会遇到你报的那个错误。你应该检查参数分割后的元素是否有足够数量。