的代码
我正在EAR的lib文件夹中部署一个jar。这个jar生成一个DefaultFileMonitor线程(来自Apache Commons api)并监视一个文件。
当我使用twiddle对EAR进行重新部署时,为所有war调用的取消部署似乎不会杀死DefaultFileMonitor线程。
问题是,这会使多个DefaultFileMonitor在同一文件上打开,这会导致问题。
终止这个线程的正确方法是什么?这要怪无聊吗?
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