Почему моя аннотация Spring PropertySource не срабатывает для атрибута кодирования? - PullRequest
0 голосов
/ 26 октября 2018

Я работаю над новым веб-приложением Spring и следую шаблону, который хорошо работал для более ранних веб-приложений.У меня есть класс конфигурации веб-приложения:

@Configuration
@EnableWebMvc
@EnableJpaRepositories
@EnableTransactionManagement
@ComponentScan(basePackages = {"com.example" })
@PropertySource(value = "classpath:application.properties")
public class WebApplicationConfiguration extends WebMvcConfigurerAdapter { ... }

Когда я запускаю веб-приложение (под Tomcat), я получаю следующую ошибку:

[RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext
[RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class 
[org.springframework.web.context.ContextLoaderListener] org.springframework.beans.factory.BeanDefinitionStoreException:
    Failed to parse configuration class [com.example.WebApplicationConfiguration];
    nested exception is java.lang.IllegalArgumentException:
    Attribute 'encoding' not found in attributes for annotation [org.springframework.context.annotation.PropertySource]
    at org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:187)
...
Caused by: java.lang.IllegalArgumentException:
    Attribute 'encoding' not found in attributes for annotation
    [org.springframework.context.annotation.PropertySource]

Мне не нужно указыватьатрибут encoding в аннотации @PropertySource в более ранних веб-приложениях, поэтому я не уверен, почему сейчас появляется ошибка.Во всяком случае, я попробовал следующее:

@PropertySource(value = "classpath:application.properties", encoding = "UTF-8")

... и это не имело никакого значения, т.е.Я получил ту же ошибку.Это говорит мне о том, что основной причиной может быть не аннотация @PropertySource.Любые предложения о том, что я могу делать не так

1 Ответ

0 голосов
/ 28 октября 2018

Подобные ошибки, как правило, являются признаком смешивания фляг из разных версий Spring.В этом случае процессор аннотаций для аннотации @PropertySource ожидает, что свойство encoding будет там.

Однако во время выполнения его там нет и, следовательно, он выдает ошибку.

Вы хотите проверить свои (транзитивные) зависимости на наличие конфликтующих версий (или версий, которыми вы явно не управляли).

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