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类代表的方法)在运行时抛出了异常,被封装成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导出大量数据,出现错误?的主要内容,如果未能解决你的问题,请参考以下文章