我在运行JSP时,出现java.lang.NegativeArraySizeException 这样的错误提示!
java.lang.NegativeArraySizeException我知道是这样的错误( 如果应用程序试图创建大小为(负的)数组时抛出)
可是我检查我的代码时,没发现怎么错呀?
以下是代码段:String[] userInfo = new String[5];
      String vMobile = "", vName = "", vDuty = "", vDept = "";      //统计导入总条数
      tmp_total = rs.getRows() - 1;      for (int i = 1; i < rs.getRows(); i++) {
        for (int j = 0; j < rs.getColumns(); j++) {
          //获取行和列的值
          Cell c = rs.getCell(j, i);
          //将任何类型的Cell值转换为字符串,并存放于数组中
          userInfo[j] = c.getContents();
          vMobile = userInfo[0];
          vName = userInfo[1];
          vDuty = userInfo[2];
          vDept = userInfo[3];
        }
}

解决方案 »

  1.   

    tmp_total是用在什么地方?没有看到
    rs是ResultSet的实例吗?如果是,它只有getRow()方法呀?而且必须是定位到最后一条记录时才返回记录数
      

  2.   

    出现的异常:java.lang.NegativeArraySizeException at com.jspsmart.upload.SmartUpload.upload(SmartUpload.java:218) at org.apache.jsp.userloadExcel$jsp._jspService(userloadExcel$jsp.java:144) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473) 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:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:534)代码段://构建Workbook对象, 只读Workbook对象
        //直接从本地文件创建Workbook
        //从输入流创建Workbook
        try {
          InputStream is = new FileInputStream(filename);
          Workbook rwb = Workbook.getWorkbook(is);      //获取第一张Sheet表
          Sheet rs = rwb.getSheet(0);      String[] userInfo = new String[5];
          String vMobile = "", vName = "", vDuty = "", vDept = "";      //统计导入总条数
          int tmp_total = rs.getRows() - 1;      for (int i = 1; i < rs.getRows(); i++) {
            for (int j = 0; j < rs.getColumns(); j++) {
              //获取行和列的值
              Cell c = rs.getCell(j, i);
              //将任何类型的Cell值转换为字符串,并存放于数组中
              userInfo[j] = c.getContents();
              vMobile = userInfo[0];
              vName = userInfo[1];
              vDuty = userInfo[2];
              vDept = userInfo[3];
            }
    }
      

  3.   

    java.lang.NegativeArraySizeException
    at com.jspsmart.upload.SmartUpload.upload(SmartUpload.java:218)
    好像错误的地方不在你贴出来的这段代码里边.
    看一下这个帖子吧http://forum.java.sun.com/thread.jspa?forumID=31&threadID=312426