我正在开发一个使用Spring MVC的应用程序。在业务流程中,会生成一个图像文件,需要从应用程序服务器中检索到Web服务器。我正在使用commons-net API来以简单的方式进行操作。java:多线程,多用户web应用程序中的FTP
public class FtpUtility{
private FTPClient ftpClient = new FTPClient();
public boolean retriveFileFromApp(String srcFile, String destFile){
boolean flag = false;
try{
connectToFtp()
File dest = new File(destFile);
if(!dest.exists())
dest.mkdirs();
if(dest.exists())
dest.delete();
FileOutputStream destStream = new FileOutputStream(dest);
ftpClient.retrieveFile(srcFile, destStream);
}
catch(Exception e){
//exception handling
}
finally{
disconnect();
}
return flag;
}
private boolean connectToFtp(){
boolean flag = false;
try{
ftpClient.connect(appserverip); // connect to ftp
flag = ftpClient.login(ftpUserId, ftpPassword);
}
catch(Exception e){
//exception handling
}
return flag;
}
private void disconnect(){
try{
ftpClient.logout();
ftpClient.disconnect();
}
catch(Exception e){
//some exception handling
}
}
}
现在同时有多个用户使用该应用程序,将它们同时使用这个类的一个实例,然后断开连接。即使一个用户正在连接和断开每个文件传输。
我怎样才能有效地做到这一点像连接一次,然后做所有传送,然后断开连接,无法打开和关闭每次传输的连接。
会使用静态帮助吗?如果是的话如何?
您正在连接到ftp并断开连接。在这两个操作之间,您可以根据需要传递尽可能多的文件。 –
它实际上是在每个业务流程中生成条形码,并将条形码转移到网络服务器以显示在网页上。无法为一个业务流程转移多个文件 – ares