Установка свойств системы в JAVA LifeCycle Listener - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь установить свойства приложения из файла в ресурсах во время загрузки tomcat. Для этого я использую LifeCycleListener с методом contextInitialized(ServletContextEvent sce). В настоящее время у меня две проблемы, которые я не могу решить. Первый имеет нулевой указатель исключения fileNotFound при использовании ClassLoader.getResourceAsStream("tapi.properties"), даже если файл существует как в / src / main / resources, так и в / target / classes.

Когда я попытался использовать FileInputStream(absolutePathToFile), я получил очень странную ошибку:

SEVERE: Error waiting for multi-thread deployment of context descriptors to completenulljava.util.concurrent.ExecutionException: java.lang.NullPointerExceptionnull at java.util.concurrent.FutureTask.report(FutureTask.java:122)null at java.util.concurrent.FutureTask.get(FutureTask.java:192)null at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:597)null at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)null at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1713)null at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:337)null at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)null at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)null at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:388)null at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:333)null at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1136)null at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)null at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)null at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)null at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)null at java.util.concurrent.FutureTask.run(FutureTask.java:266)null at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)null at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)null at java.lang.Thread.run(Thread.java:748)nullCaused by: java.lang.NullPointerExceptionnull at java.io.File.<init>(File.java:277)null at org.apache.catalina.startup.HostConfig.returnCanonicalPath(HostConfig.java:420)null at org.apache.catalina.startup.HostConfig.addGlobalRedeployResources(HostConfig.java:1378)null at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:753)null at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1966)null at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)null ... 4 morenull

На данный момент у меня больше нет идей, что я могу сделать.

Вот мой код:

public class LifeCycleListener implements ServletContextListener {
    Logger log = Logger.getLogger(LifeCycleListener.class);
    @Override
    public void contextInitialized(ServletContextEvent sce) {


        Properties prop = new Properties();
        try (InputStream input = ClassLoader.getSystemResourceAsStream("tapi.properties")) {
            if (input == null) {
                throw new FileNotFoundException("tapi.properties");
            }
            prop.load(input);
            System.setProperties(prop);
        }catch (FileNotFoundException e){
            log.debug("File not found");
            log.debug(e.getMessage());
        }catch (IOException ex) {
            log.debug("Exception while loading properties file");
            log.debug(ex.getMessage());
        }
    }

Я кодирую в Intellij. Пожалуйста, помогите!

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