ftp卡死问题
最近用org.apache.commons.net.ftp.FTPClient 写ftp的上传下载的定时任务
发现有时候线程会卡住,也不报错就一直不工作了,后来发现需要使用ftp的被动模式才行,实现如下
以前有问题的代码是这样写的
ftp.connect(odmInfo.getFtpserver(), port);// 连接FTP服务器
ftp.login(odmInfo.getFtpusername(), odmInfo.getFtppwd());// 登录
reply = ftp.getReplyCode();
下面是修改后的代码,login后需要调用ftp.enterLocalPassiveMode();
ftp.connect(odmInfo.getFtpserver(), port);// 连接FTP服务器
ftp.login(odmInfo.getFtpusername(), odmInfo.getFtppwd());// 登录
//设置ftp为被动模式,解决有时候ftp会卡住问题
ftp.enterLocalPassiveMode();
reply = ftp.getReplyCode();
2019-08-22更新
后来发现只加入被动模式设置也不行,还需要加入超时设置
int reply;
ftp.setDefaultTimeout(30 * 1000);
ftp.setConnectTimeout(30 * 1000);
ftp.setDataTimeout(30 * 1000);
logger.info("start to connect ftp server");
ftp.connect(odmInfo.getFtpserver(), port);// 连接FTP服务器
logger.info("start to login ftp server");
ftp.login(odmInfo.getFtpusername(), odmInfo.getFtppwd());// 登录
//设置ftp为被动模式,解决有时候ftp会卡住问题
ftp.enterLocalPassiveMode();
reply = ftp.getReplyCode();
logger.info("replyCode======"+reply);
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return uploadStatus;
}
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
boolean mkdirStatus=makeMultiDir(ftpBasePath,ftp);
if(!mkdirStatus)
{
logger.info("make multi dir error!");
return uploadStatus;
}
ftp卡死问题的更多相关文章
- 再看ftp上传文件
前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在 ...
- ftpclient卡死问题
ftpclient在调用retrieveFileStream(String remote)之后,返回inputstream,如果不想关闭ftp,继续读取其他文件. 一定要先关闭inputstream, ...
- Python之ftp服务器
今天把做的ftp服务器过程总结一下,先看看要求 一.需求 1. 用户加密认证 2. 允许同时多用户登录 3. 每个用户有自己的家目录 ,且只能访问自己的家目录 4. 对用户进行磁盘配额,每个用户的可用 ...
- [JAVA]Apache FTPClient操作“卡死”问题的分析和解决
最近在和一个第三方的合作中不得已需要使用FTP文件接口.由于FTP Server由对方提供,而且双方背后各自的网络环境都很不单纯等等原因,造成测试环境无法模拟实际情况.测试环境中程序一切正常,但是在部 ...
- java ftp retrieveFile 较大文件丢失内容
今天发现用 如下方法下载一个2.2M的zip文件但是只下载了500K没有下载完全,但是方法 返回的却是true boolean org.apache.commons.net.ftp.FTPClie ...
- deepin系统换软件下载源&商店卡死刷新空白问题解决
deepin换源方法 1. deepin默认的软件下载源网速很慢,所以我们可以自己手动换软件下载源,方法如下: 1.1. 任意地方,右键选择在此打开终端,(快捷键:Ctrl+Alt+T),输入sudo ...
- FTP服务器搭建及自动备份设置
本次随笔内容主要是FTP服务器搭建. 其实去年十月服务器就搭建完了.当时写了个PPT保存了一下,准备以后写博客,结果时隔快一年我自己都快要看不懂我自己写的PPT了 ( = o = ) 不过还是尽量尝 ...
- 8.仿阿里云虚拟云服务器的FTP(包括FTP文件夹大小限制)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#iis 原文:http://dnt.dkill.net/Ar ...
- Hyper-V无法文件拖拽解决方案~~~这次用一个取巧的方法架设一个FTP来访问某个磁盘,并方便的读写文件
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...
随机推荐
- VC 实现程序只运行一个实例,并激活已运行的程序
转载:http://blog.sina.com.cn/s/blog_4b44e1c00100bh69.html 进程的互斥运行:CreateMutex函数实现只运行一个程序实例 正常情况下,一个进程的 ...
- 青岛和深圳,两座条件相似的城市,为何GDP相差这么大
深圳和青岛,是一对非常有意思的城市.两者都是沿海城市:两者都是所在省的经济强市:两者都是副省级城市,但都不是省会:两者GDP都超过所在省的省会城市.当然,两个城市也有相当大的差距,一个位于南方,一个位 ...
- kafka default partitioner java版本和scala版本的不同
scala import kafka.utils._ class DefaultPartitioner(props: VerifiableProperties = null) extends Part ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-2.微信扫一扫功能开发前期准备
笔记 2.微信扫一扫功能开发前期准备 简介:讲解微信扫一扫功能相关开发流程和资料准备 1.微信开放平台介绍(申请里面的网站应用需要企业资料) ...
- webpy简单入门---1
1. 2. 3. 4.
- 一百二十四:CMS系统之首页导航条和代码抽离
模板抽离 由于前后台的模板有些需要的元素如,js,css是相同的,这里抽离出来做base模板 {% from "common/_macros.html" import static ...
- Python-sympy科学计算与数据处理(方程,微分,微分方程,积分)
方程 a,b,c,x = symbols("a b c x") my_eq = Eq(a*x**2+b*x+c,0) solve(my_eq,x) Out[12]: [(-b + ...
- LNK2019 无法解析的外部符号 该符号在函数 _main 中被引用
学习严蔚敏的数据结构,使用vc6新建项目,文件名分别如下: SequenceStack.cpp SequenceStack.h Status.h TestCase.c 报错如下: xilink6: e ...
- python中学习K-Means和图片压缩
python中学习K-Means和图片压缩 大家在学习python中,经常会使用到K-Means和图片压缩的,我们在此给大家分享一下K-Means和图片压缩的方法和原理,喜欢的朋友收藏一下吧. 通俗的 ...
- springboot-定时任务-单线程
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annot ...