Spring boot не смог разрешить заполнитель в строкеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring boot не смог разрешить заполнитель в строке

Сообщение Anonymous »

Я запускаю Spring-Boot на встроенном сервере Tomcat через Maven с mvn clean install Spring-Boot:run. Но каждый раз, когда я запускаю его, я получаю эту ошибку:

Код: Выделить всё

 Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'language' in string value "${language}"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174) ~[spring-core-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:236) ~[spring-core-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer$2.resolveStringValue(PropertySourcesPlaceholderConfigurer.java:172) ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:831) ~[spring-beans-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1086) ~[spring-beans-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ~[spring-beans-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) ~[spring-beans-4.3.6.RELEASE.jar:4.3.6.RELEASE]
... 35 common frames omitted
Эта ошибка касается этих двух строк кода:

Код: Выделить всё

@Value("${language}")
private String language;
Этот языковой флаг указан в моем application.properties следующим образом:
application.properties

Код: Выделить всё

language=java
logging.level.org.springframework=TRACE
Это сбивает с толку: Когда я запускаю сборку без команды spring-boot:run, она собирается правильно, и я могу запустить собранный jar без каких-либо проблем. С этой проблемой я сталкиваюсь только тогда, когда пытаюсь запустить встроенный сервер Tomcat.
Я могу обойти это, выполнив это в своем коде:

Код: Выделить всё

@Value("${language:java}")
private String language;
Но для меня это не имеет смысла, поскольку Spring должен автоматически считывать значение по умолчанию из файла application.properties.
EDIT: как отмечали люди, он вообще не читает application.properties при запуске на встроенном сервере Tomcat. Есть ли способ заставить его прочитать файл или причину, по которой он его не читает? Он отлично работает при развертывании на внешнем сервере приложений, а не на встроенном.

Подробнее здесь: https://stackoverflow.com/questions/481 ... -in-string
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»