GWT请求工作两次,导致process.wait中断

时间:2013-08-13 10:49:10

标签: java gwt download glassfish-3

我的项目中有一个长期运行的下载过程,它持续将近20分钟,我使用FtpClient.retrieveFile()函数下载此文件。此下载过程通过名为DownloadVeDeploy.jar。

的另一个jar文件完成

在我的情况下,下载过程开始,然后在将近10分钟后开始第二次。 我的下载实现就像这样;

for (FTPFile file : ftpFiles) {
                        if (file.isFile()) {
                            output = new BufferedOutputStream(
                                    new FileOutputStream(downloadfolder + "/"
                                            + file.getName()));
                            conn.retrieveFile(
                                    ftpversion + "/" + file.getName(), output);
                            // Writing into target folder for build.xml
                            output.close();
                            System.out.println(file.getName()
                                    + " isimli dosya indirildi.");
                        }
                    }

我还做了一个过滤器,因为它已经有第一个请求在运行时没有传递第二个请求。这是代码;

private IslemBaslangici() {
    }

    public static void yeniIslem(String versiyonNo) {
        IslemBaslangici islemBaslangic = new IslemBaslangici();
        islemBaslangic.versiyonNo = versiyonNo;
        islemler.add(islemBaslangic);
        sonrakiIslem();
    }

    private static void sonrakiIslem() {
        IslemBaslangici islemBaslangici = null;
        if (islemler.size() > 0) {
            islemBaslangici = islemler.get(0);
            if (!islemBaslangici.calisiyor) {
                islemBaslangici.baslat(islemler.get(0));
                islemler.remove(islemBaslangici);
                sonrakiIslem();
            }
        }
    }

此代码段只允许一个进程运行一次,并将其他请求添加到队列中。所以这是我的问题,为什么我的下载过程重演?我有一个来自客户端的多个请求的过滤器,所以它不能来自客户端,我只调用一次下载过程。

作为额外信息,我的项目在Glassfish 3.1.2上运行。

0 个答案:

没有答案