Переменная среды чтения ошибок Springboot в @PropertySource - PullRequest
0 голосов
/ 09 января 2019

Я работаю с приложением Springboot, и я перенес файлы конфигурации. Я разрабатываю приложение для Windows 10 с использованием Eclipse и запускаю на сервере Debian 9 с Tomcat 8.

Путь к файлам конфигурации определен в переменной среды с именем DDK_OPT. Эта переменная определена в "/etc/environment" как:

DDK_OPT=/opt/DDK

В своем приложении Springboot я пытаюсь использовать его в @PropertySource декораторах:

@Configuration
@PropertySource({"file:${DDK_OPT}/application.properties"})
@EnableJpaRepositories(
        basePackages = "eus.ddk.repository.APL", 
        entityManagerFactoryRef = "aplEntityManager", 
        transactionManagerRef = "aplTransactionManager"
)
public class APLPersistenceConfig {
...

Когда Tomcat запускается, приложение не может выдать эту ошибку:

2019-01-09 11:37:23.610 [ERROR] SpringApplication.Application startup failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [eus.ddk.APLApplication]; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'DDK_OPT' in value "file:${DDK_OPT}/application.properties"
        at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:183) ~[ConfigurationClassParser.class:4.3.21.RELEASE]
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:308) ~[ConfigurationClassPostProcessor.class:4.3.21.RELEASE]
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228) ~[ConfigurationClassPostProcessor.class:4.3.21.RELEASE]
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:272) ~[PostProcessorRegistrationDelegate.class:4.3.21.RELEASE]
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:92) ~[PostProcessorRegistrationDelegate.class:4.3.21.RELEASE]
...

В Windows приложение работает отлично, но я не могу заставить его работать на сервере.

Любая помощь будет оценена.

Спасибо!

1 Ответ

0 голосов
/ 17 января 2019

Вместо установки переменной среды в /etc/environment я установил ее в файле /etc/default/tomcat8, и она начала работать так, как я хотел.

Спасибо за помощь, Стефан!

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