#java #spring #spring-boot #tomcat #environment-variables
#java #spring #spring-boot #tomcat #среда-переменные
Вопрос:
У меня есть приложение spring boot, размещенное на экземпляре AWS Ubuntu, развернутое с использованием развертывания WAR от Jenkins в контейнере Apache tomcat (8.5.14).
У меня есть одна переменная среды, определенная в файле application-test.properties, как показано ниже-
drehr.config.upload.image = /home/ubuntu/ehrFiles/
(используется файл application-test.properties, поскольку для активного профиля установлено значение test)
Мой java-код обращается к этому свойству, используя следующий синтаксис:-
import org.springframework.beans.factory.annotation.Value;
@Value("${drehr.config.upload.image}")
private String imagePath;
Но я не могу получить его значение в imagePath
переменной, оно становится пустым, и код завершается сбоем. Пожалуйста, укажите какой-либо способ решения этой проблемы.
Также пытался изменить значение свойства внутри apache-tomcat-x/webapps/drehrweb-0.0.1/WEB-INF/classes/application-test.properties
. По-прежнему не работает.
Странно то, что тот же код отлично работает в среде разработки (с использованием spring tool suite).
Комментарии:
1. Работает ли это с файлом свойств по умолчанию? Это может произойти, если класс не является компонентом
2. Устанавливаете ли вы переменную profile в экземпляре AWS? Используете ли вы тестовый профиль на AWS или есть отдельный профиль?
3. Печатает ли ваш журнал запуска активные профили? Указан ли ваш целевой профиль? Я всегда вижу сообщение об этом в журнале, например: «Следующие профили активны: по умолчанию, версия, ТЕСТ»
4. @KevinB да, я использую тестовый профиль на AWS. И я вижу в журнале следующее сообщение: «Следующие профили активны: тест»
5. Что вы имеете в виду под «возвращением пустого кода и сбоем кода». Означает ли «пустая» нулевую или пустую строку. При «сбое» вы получаете исключение? Может помочь трассировка стека исключений.