做了个程序,系统定时扫描一FTP服务器的某个文件夹,如果发现XML文件则取文件到本地处理。现在有个问题是,系统运行一段时间后,出现FTP无法连接的问题,提示为“打开文件太多”,请高手指教,部分代码入下:
try{
//扫描服务器,检查是否有待处理的XML文件
String[] files=FileAction.getFileNames(FTPConnection,serPath);
if (files != null){
for (int i=0;i<files.length();i++){
//下载文件到本地
FileAction.getFile(FTPConnection,serPath,file[i],localPath,file[i]);
File file=new File (localPath + file[i]);
try {
//开始处理文件
SAXReader reader = new SAXReader();
Document OSS2WG_002 = reader.read(file);
.....
//处理文件结束
FileAction.putFiles(...);//上传文件到处理成功目录
FileAction.delFiles(...);//删除服务器上的原文件
file.delete();//删除本地文件
}catch{
FileAction.putFiles(...);//上传文件到处理失败目录
FileAction.delFiles(...);//删除服务器上的原文件
file.delete();//删除本地文件
}
}
}
}catch{
System.out.println("sss");
}
try{
//扫描服务器,检查是否有待处理的XML文件
String[] files=FileAction.getFileNames(FTPConnection,serPath);
if (files != null){
for (int i=0;i<files.length();i++){
//下载文件到本地
FileAction.getFile(FTPConnection,serPath,file[i],localPath,file[i]);
File file=new File (localPath + file[i]);
try {
//开始处理文件
SAXReader reader = new SAXReader();
Document OSS2WG_002 = reader.read(file);
.....
//处理文件结束
FileAction.putFiles(...);//上传文件到处理成功目录
FileAction.delFiles(...);//删除服务器上的原文件
file.delete();//删除本地文件
}catch{
FileAction.putFiles(...);//上传文件到处理失败目录
FileAction.delFiles(...);//删除服务器上的原文件
file.delete();//删除本地文件
}
}
}
}catch{
System.out.println("sss");
}
解决方案 »
- 这里的return作用?
- 记录数超过一定的范围,如何滚动显示?
- 我在做tapestry时,在resin上发布完成以后,启动服务报下面的异常
- 求教
- 有谁知道,这样的参数如何进行传递,谢谢(这个问题,我没遇过,所以觉得还挺难)
- 我想用java写一个类来获取网页中的数据信息.请高手指点.
- java中如何作类似于windows中的服务的程序
- select标签问题
- 什么问题会造成??? Cannot load JDBC driver class 'null'导致连接数据库失败
- 这是一个什么问题?
- 控制页面内容问题?求高手来指导,谢谢
- 又来问菜鸟问题了!如何在自己定义的JSP目录里使用CLASS?在线等~~~~
在所有操作结束后再关闭就OK了和数据库连接一样
public class startAutoJob extends java.util.TimerTask {
private static FTPClient FTPConnection = null;
public startAutoJob(){
super();
//创建FTP连接
FTPConnection = FileAction.createFTPclient(ip,port,username,password);
}
public void run(){
try{
//扫描服务器,检查是否有待处理的XML文件
String[] files=FileAction.getFileNames(FTPConnection,serPath);
if (files != null){
for (int i=0;i<files.length();i++){
//下载文件到本地
FileAction.getFile(FTPConnection,serPath,file[i],localPath,file[i]);
File file=new File (localPath + file[i]);
try {
//开始处理文件
SAXReader reader = new SAXReader();
Document OSS2WG_002 = reader.read(file);
.....
//处理文件结束
FileAction.putFiles(...);//上传文件到处理成功目录
FileAction.delFiles(...);//删除服务器上的原文件
file.delete();//删除本地文件
}catch{
FileAction.putFiles(...);//上传文件到处理失败目录
FileAction.delFiles(...);//删除服务器上的原文件
file.delete();//删除本地文件
}
}
}
}catch{
System.out.println("sss");
}
}