java导出大量数据,出现错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java导出大量数据,出现错误?相关的知识,希望对你有一定的参考价值。

response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition","attachment; filename=1.txt");
StringBuffer sb=new StringBuffer();
for(Object obj:list)
CcCompareCrbt c=(CcCompareCrbt) obj;

sb.append(c.getCompare_type()+"\t");
sb.append(c.getGtn_Telephone()+"\t");
sb.append(c.getUser_Type()+"\t");
sb.append(c.getOds_Content()+"\t");
sb.append(c.getHlr_Content()+"\t");
sb.append(c.getCrbt_Content()+"\t");
sb.append(c.getIbp_Content()+"\t");
sb.append(c.getHlr_Id()+"\t");
sb.append(c.getIbp_User_Id()+"\t");
sb.append(c.getCompare_Date()+"\r\n");


try
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(sb.toString());
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();


数据库里面有16W的数据,我试了下 大概3W左右不会抛出错误。导出16W的数据后大概 20秒附近抛出

java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)

这种异常一般是由于调用Method类的invoke()方法,该方法所代表的指定方法抛出异常时,或者调用Constructor类的newInstance()方法,该方法所代表的底层构造方法抛出异常时,由java.lang.reflect.InvocationTargetExceptio异常包装后作为新的异常抛出而产生,默认异常信息是NULL。
因此,有可能是由于数据问题导致以反射的方式调用的方法(即:Method类代表的方法)在运行时抛出了异常,被封装成InvocationTargetExceptio异常抛到后台。所以可以去检查一下这个以反射的方式调用的方法,在调用到了什么数据的时候抛出了异常。
参考技术A 看看你数据库的连接有没有关闭,或者是不是因为你的(如果是access)数据库因为请求过于频繁而挂了(最好弄个连接池) 参考技术B InvocationTargetException 是一种包装由调用方法或构造方法所抛出异常的经过检查的异常。
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
这里都是未知类型的数据,可能是读到了未知数据,使用的时候出异常了。
参考技术C 这个错误是你TOMCAT本身的配置问题,如果是安装版,加大内存的设置.如:512M 1024M 最后一项不设. 参考技术D 不能这样做!我前几天也写了一个这样的大数据量导出!数据量大以后会报内存溢出。
你查一条数据 就写一条数据!

导入导出的 Parse 数据后,PFFiles 出现 AWS S3 错误

【中文标题】导入导出的 Parse 数据后,PFFiles 出现 AWS S3 错误【英文标题】:AWS S3 error with PFFiles after importing the exported Parse data 【发布时间】:2014-10-31 22:13:35 【问题描述】:

看起来 Parse.com 将 PFFile 对象存储在 AWS S3 上,并且仅在 Parse 中存储对 PFFile 对象类型的 S3 上实际文件的引用。

所以我的问题是,如果我使用开箱即用的 Parse.com 导出功能导出数据,我只能获得指向我的 PFFile 的 AWS S3 链接的链接。在我将相同的数据导入我的 Parse 应用程序后,由于某种原因,S3 上这些 PFFiles 的安全设置发生了更改,由于安全错误,在导入后我将无法访问所有 PFFiles。

我的问题是,有人知道如何在 PFFiles 上设置安全性吗?这是 PFFile https://parse.com/docs/osx/api/Classes/PFFile.html 的链接,但我想这是一个相当高级的主题,并没有在此页面上显示。

【问题讨论】:

【参考方案1】:

也在寻找解决方案,我从他们的论坛中找到了这个:

在这种情况下,PFFiles 存储在不同的应用程序中。你可能 需要下载这些文件并再次将它们上传到新应用程序和 更新指针。我知道这不是一个很好的答案,但我们是 努力使这个过程更简单。

https://www.parse.com/questions/import-pffile-object-not-working-in-iphone-application

【讨论】:

以上是关于java导出大量数据,出现错误?的主要内容,如果未能解决你的问题,请参考以下文章

java,poi导出excel大量数据会出错(5000条)。

php怎么导出大量数据的Excel

导出大量数据

PHPExcel导出大量数据超时及内存错误解决方法(转)

后台导出大量数据超时报 nginx404错误

如何将sql server中的大量数据导出到excel文件中