Java Watch Service : Not Working for Remote Files mounted in the local Server

前端 未结 2 1316
终归单人心
终归单人心 2020-12-19 06:16

I have Java program monitoring a remote folder mounted in my local server. But it is not detecting any changes / modification whenever something changed in the remote folder

相关标签:
2条回答
  • 2020-12-19 06:35

    I have same issue and used org.apache.commons.io.monitor.FileAlterationMonitor. The pom.xml changes as suggested in the post before is as below

    <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
    </dependency>
    

    Code Snippet for usage which is working for me is as below:

        String monitoringDirectory= "<YOUR CODE HERE>"; 
        FileAlterationObserver observer = new FileAlterationObserver(monitorDirectory);
    
        logger.info("Start ACTIVITY, Monitoring "+monitorDirectory);
        observer.addListener(new FileAlterationListenerAdaptor(){
             @Override
             public void onDirectoryCreate(File file) {
                logger.info("New Folder Created:"+file.getName());
             }
    
             @Override
             public void onDirectoryDelete(File file) {
                 logger.info("Folder Deleted:"+file.getName());
             } 
    
             @Override
             public void onFileCreate(File file) {
                 logger.info("File Created:"+file.getName()+": YOUR ACTION");
    
             }
    
             @Override
             public void onFileDelete(File file) {
                 logger.info("File Deleted:"+file.getName()+": NO ACTION");
             }  
          });
        /* Set to monitor changes for 500 ms */     
        FileAlterationMonitor monitor = new FileAlterationMonitor(500, observer);
        try {
            monitor.start();
        } catch (Exception e) {
            logger.error("UNABLE TO MONITOR SERVER" + e.getMessage());
            e.printStackTrace();
    
        }
    
    0 讨论(0)
  • 2020-12-19 06:48

    I guess, Oracle's watch service doesn't detect remote events - that service is for local directories.

    You have to use - org.apache.commons.io.monitor.FileAlterationMonitor class of API -

    <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
    </dependency>
    

    You should google for code samples using that class.

    0 讨论(0)
提交回复
热议问题