0

我正在耳朵的 lib 文件夹中部署一个带有 jar 的 EAR。这个 jar 生成一个 DefaultFileMonitor 线程(来自 Apache Commons api)并监视一个文件。

当我使用 twiddle 重新部署 EAR 时,为所有 WAR 调用的取消部署似乎不会杀死 DefaultFileMonitor 线程。

问题是这将使多个 DefaultFileMonitor 在同一个文件上保持打开状态,这会导致问题。

杀死这个线程的正确方法是什么?玩弄是罪魁祸首吗?

4

1 回答 1

0
public enum Logger {
    INSTANCE;
    DefaultFileMonitor fm = new DefaultFileMonitor(new CustomFileListener());
    private FileObject file = null;
    private FileObject object = null;

    private Logger() {

    this.openFile();

    try {
        FileSystemManager fsManager = VFS.getManager();
        file = fsManager.resolveFile(this.getfileLocation());
        object = fsManager.resolveFile("c:\test.txt");
    } catch (FileSystemException e) {
        e.printStackTrace();
    }

    fm.setDelay(1000);
    fm.addFile(file);
    fm.start();
}

这是我用来加载 DefaultFileMonitor 的代码

于 2013-04-22T13:18:59.440 回答