urlConnection,servlet,如果后台处理时间长, 结果数据文件接收不到的问题 con.setReadTimeout(10000000000......); con.setConnectTimeout(100000000......); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 大家可以参考sun的api,con.setReadTimeout(0); con.setConnectTimeout(0); 中如果方法传入参数为零,则表示超时时间为infinity,所以不存在超时时间的问题,2楼兄弟的建议很好,不过这样需要大改,hoho... 你这需求不等于就是等于在web页面提交一个附件表单到服务器吗?不就是文件上传吗?但是为什么要用urlconnection 呢? 难道是swing程序的请求?直接用apahce的 httpclient包 创建一个附件上传表单提交请求 1.加con.setAllowUserInteraction(true);试试。(估计没有用处)2.如果1没用,用con.getReadTimeout(); con.getConnectTimeout();看看,并catch SocketTimeoutException异常看看。3.如果2还没有用 给setReadTimeout以及setConnectTimeout具体数值。4.如果3还没有用,楼主能确定文件在服务端已经正确生成?5.如果4还没有用~~~~ 非常感谢8楼仁兄的建议,我也一一测试了第一点,好像没什么关系,因为client和server已经可以互动了。第二点,我已经将setReadTimeout()和setConnectionTimeout设置成为99999999第三点:非常确定以及肯定的是文件已经在server端生成,但是就是无法将结果文件返回给客户端,这里要补充一句的是,如果在运行时间比较短并且结果文件比较小的情况(这两个一般成比例),客户端可以拿到结果文件。但是一旦运行时间比较长,客户端则不能收到文件的数据流了。 客户端一直处于阻塞状态,就是没有收到任何数据。还有11楼的大哥,why sleep? File transferFile = new File(downloadFilePath); if (transferFile.exists())我的理解,这个是保存你已经生成文件的。但是如果此时文件没有生成,将不会发到客户端。我不知道你这段代码外面是否会循环检测文件的生成。 第三点:非常确定以及肯定的是文件已经在server端生成,但是就是无法将结果文件返回给客户端,这里要补充一句的是,如果在运行时间比较短并且结果文件比较小的情况(这两个一般成比例),客户端可以拿到结果文件。但是一旦运行时间比较长,客户端则不能收到文件的数据流了。 把异常抓出来看看,把ReadTimeout和ConnectTimeout打印出来看看。 File transferFile = new File(downloadFilePath);downloadFilePath是个变量还是什么啊,本人菜鸟,能给写详细点儿吗,谢了!!! 实例化抽象类,调用其中的方法的 table行数显示问题 新手- 0 -求解 为什么答案是B 关于netBeans 开发界面的问题 关于java开源的问题 关于JScrollPane自动向下滚动的问题 看过jb6实例入门的人进来看看 怎样用JVM把java的已有的class文件或java文件编译成exe文件? 算法问题 小孩围成一个圈,每隔几个就出局,最后剩下谁的问题 jsp 求助 关于数据查询
con.setConnectTimeout(0); 中如果方法传入参数为零,则表示超时时间为infinity,所以不存在超时时间的问题,2楼兄弟的建议很好,不过这样需要大改,hoho...
不就是文件上传吗?
但是为什么要用urlconnection 呢? 难道是swing程序的请求?直接用apahce的 httpclient包 创建一个附件上传表单提交请求
2.如果1没用,用
con.getReadTimeout();
con.getConnectTimeout();看看,并catch SocketTimeoutException异常看看。
3.如果2还没有用
给setReadTimeout以及setConnectTimeout具体数值。
4.如果3还没有用,楼主能确定文件在服务端已经正确生成?
5.如果4还没有用~~~~
第一点,好像没什么关系,因为client和server已经可以互动了。
第二点,我已经将setReadTimeout()和setConnectionTimeout设置成为99999999
第三点:非常确定以及肯定的是文件已经在server端生成,但是就是无法将结果文件返回给客户端,这里要补充一句的是,如果在运行时间比较短并且结果文件比较小的情况(这两个一般成比例),客户端可以拿到结果文件。但是一旦运行时间比较长,客户端则不能收到文件的数据流了。
还有11楼的大哥,why sleep?
if (transferFile.exists())
我的理解,这个是保存你已经生成文件的。
但是如果此时文件没有生成,将不会发到客户端。
我不知道你这段代码外面是否会循环检测文件的生成。
downloadFilePath是个变量还是什么啊,本人菜鸟,能给写详细点儿吗,谢了!!!