一讀取EXCEL就會拋出如下異常java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.apache.poi.hssf.record.RecordFactory.createRecord(RecordFactory.java:224)
        at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:160)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:163)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:210)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:191)
        at com.emis.app.pbo.dep.emisQuoteExcelToDB.quoteExcelToDb(emisQuoteExcelToDB.java:63)
        at com.emis.app.pbo.dep.emisQuoteExcelToDB.<init>(emisQuoteExcelToDB.java:47)
        at _jsp._dep._bestdaybp_0upload_0xls__jsp._jspService(_bestdaybp_0upload_0xls__jsp.java:96)
        at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
        at com.caucho.jsp.Page.subservice(Page.java:506)
        at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
        at com.caucho.server.http.Invocation.service(Invocation.java:315)
        at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
        at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
        at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:164)
        at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ArrayIndexOutOfBoundsException
        at java.lang.System.arraycopy(Native Method)
        at org.apache.poi.hssf.record.UnknownRecord.<init>(UnknownRecord.java:62)
        at org.apache.poi.hssf.record.SubRecord.createSubRecord(SubRecord.java:57)
        at org.apache.poi.hssf.record.ObjRecord.fillFields(ObjRecord.java:99)
        at org.apache.poi.hssf.record.Record.fillFields(Record.java:90)
        at org.apache.poi.hssf.record.Record.<init>(Record.java:55)
        at org.apache.poi.hssf.record.ObjRecord.<init>(ObjRecord.java:61)
        ... 21 more經過調試是 HSSFWorkbook hssfWorkbook = new HSSFWorkbook(inStream);錯誤,請大神幫助

解决方案 »

  1.   

    难道JAVA论坛人才凋零了????
      

  2.   

     java.lang.ArrayIndexOutOfBoundsException
    数组下标越界。
    emisQuoteExcelToDB.java:63行,
    大概是数组拷贝时候数组没有开到足够大。
      

  3.   

    可是我的63行代碼是  hssfWorkbook = new HSSFWorkbook(inStream); 就是這行走不過
      

  4.   


    String FileURL = ""; //文件的真实路径
    hssfWorkbook = new HSSFWorkbook(new POIFSFileSystem(new FileInputStream(FileURL)));
      

  5.   

    我是先把EXCEL文件上傳到服務器本地來讀取..我看了一下 路徑是正確的
      

  6.   

    即使是服务器本地也有绝对路径的嘛
    java.lang.reflect.InvocationTargetException 这应该是poi使用时抛出的异常
    要不你先测试一个简单的demo?
    确定没错……?
      

  7.   


    我测试过,上传到本地服务器后,得到的路径是绝对路径, 可不知道为什么 在New HSSFWorkbook 就一直抛异常
      

  8.   

    你直接写另外写个测试,就写这一句,把你那路径创建inputStream试试,那句走不通,个人觉得有可能是excel文件或者其内容的原因吧。
      

  9.   

    創建inputStream 這個能走通。。就是new HSSFWorkbook的時候就拋出異常了
      

  10.   

    无语了,创建inputStream当然能走通,我是说,你单独写一个测试,用那个路径创建的inputStream来构造HSSFWorkbook,看行不行,实在不知道怎么找错的话,你就把源码下下来,导入,debug
      

  11.   

    终于解决了  原来是这个项目读取EXCEL的POI相关JAR包太老旧了..我看了 还是2004年的版本的包
      

  12.   

    共勉下,我最近也在改一个项目,。net项目,用的NPOI