Приложение Java, работающее как служба, не будет создавать файлы - PullRequest
1 голос
/ 06 ноября 2019

Я создал простое Java-приложение, использующее весеннюю загрузку, которое создает файлы (скажем, /Store/store.txt) при запуске, а затем использует эти файлы для чтения и записи. Также настроен logging.file=persist/consol-logs/fix-adaptor.log на application.properties.

Теперь проблема в том, что ни один из вышеуказанных файлов не создается (/Store/store.txt или persist/consol-logs/fix-adaptor.log).

Я использую Maven для сборки, которая дает мне исполняемый файл jar. Затем перемещаем банку по системе (которая является тестовой машиной, работающей с кентосом). Я запускаю приложение (.jar) в качестве службы на centos.

Это прекрасно работает, когда я запускаю его в своей системе Windows, используя java -jar application.jar. но он не будет работать в тестовой системе (centos).

Когда я запускаю свое приложение в Windows (допустим, у меня есть jar в целевой папке), он создает все каталоги в целевой папке, но я неНе знаю, когда я запускаю его в системе Linux, где он должен создавать эти папки.

Что я делаю в системе Linux:
1. Созданный пользователь (допустим, ravi)
sudo useradd ravi

установить пароль
$ sudo passwd ravi@123

Скопировать application.jar в домашний каталог пользователя ravi
затем $ sudo chown ravi:ravi /home/ravi/application.jar
$ sudo chmod 500 /home/ravi/application.jar

создать символическую ссылку
$ sudo ln -s /home/ravi/application.jar /etc/init.d/my-application

Запущенное приложение
$ sudo service my-application start

Может кто-нибудь помочь решить эту проблему?

Метод, который создает структуру каталогов:

private boolean createStructure() {
        HashMap<String, String> config = configProvider.getConfig();
        String fileLogPath = config.get("FileLogPath");
        File file = new File(fileLogPath);
        if (!file.exists()) {
            file.mkdirs();
            LOG.info("### Directories created: " + fileLogPath + " ###");
            return file.exists();
        }
        LOG.info("### Directory creation failed: " + fileLogPath + " ###");
        return file.exists();
    }

Где FileLogPath=fix-adaptor/fix-logs/initiator/

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