Запустите функцию после работы SpringApplication.run локально, но не работайте с Tomcat на Unix сервере. - PullRequest
0 голосов
/ 04 мая 2020

у моего проекта есть такая:

@SpringBootApplication
//@EnableCaching
public class TestLoaderApplication extends SpringBootServletInitializer {

    public static String pathJars=System.getenv("TEST_JAR_PATH");

    static public JarClassMethod testClassObjMap = new JarClassMethod();
    static public boolean changed = true;
    private static final Logger LOGGER = LoggerFactory.getLogger(TestLoaderApplication.class);

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(TestLoaderApplication.class);
    }

public static void main(String[] args) {

        SpringApplication.run(TestLoaderApplication.class, args);

        TestLoaderApplication.runWatcher();

    }
private static void runWatcher(){
        LOGGER.info("Test Loader Console Back-End:\tSTART RUN WATCHER");
        System.out.println("Test Loader Console Back-End:\tSTART RUN WATCHER");
        DirectoryWatcher watcher = new DirectoryWatcher.Builder()
                .addDirectories(pathJars)
                .setFilter(o -> {
                    if (o.toString().endsWith(".jar")){
                        return true;
                    }
                    else{
                        return false;
                    }

                })
                .setPreExistingAsCreated(false)
                .build((event, path) -> {
                    System.out.println("EVENTO:\t" + event);
                    switch (event) {
                        case ENTRY_CREATE:
                            LOGGER.info("Test Loader Console Back-End:\tCreate Event, "+path);
                            TimeUnit.SECONDS.sleep(2);
                            changed=true;
                            break;

                        case ENTRY_MODIFY:
                            LOGGER.info("Test Loader Console Back-End:\tModifiy Event, "+path);
                            TimeUnit.SECONDS.sleep(2);
                            changed=true;
                            break;

                        case ENTRY_DELETE:
                            LOGGER.info("Test Loader Console Back-End:\tDelete Event, "+path);
                            TimeUnit.SECONDS.sleep(2);
                            changed=true;
                            break;

                    }
                });

        try {

            watcher.start(); // Actual watching starts here

        } catch (Exception e) {

        }
     }
    }

Это мой пом. xml:

пом. xml

В локальном режиме (на моем компьютере p c с windows) он работает правильно, и после SprinbootRun я просматриваю информацию журнала: «Тестовый конец консоли загрузчика: START RUN WATCHER» Но когда я разверну .war на Unix Сервер на функции Tomcat runWatcher не запускается, и я не вижу функцию входа в систему. Почему? Некоторые советы? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...