MessageSource Spring: NotSerializableException

Я использую MessageSource для реализации интернационализации в Spring.

У меня что-то вроде этого.

В моем классе Config:

@Bean
public ReloadableResourceBundleMessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    messageSource.setBasename("classpath:messages");
    messageSource.setDefaultEncoding("UTF-8");
    messageSource.setUseCodeAsDefaultMessage(true);
    return messageSource;
}

Моя весенняя фасоль

@Component
class MyClass implements Serializable {

    @Autowired(required = true)
    private MessageSource messages;
}

Когда я запускаю свой проект, я получаю это исключение:

Caused by: java.io.NotSerializableException: org.springframework.context.support.ReloadableResourceBundleMessageSource

Может SomeOne, пожалуйста, посоветует мне, как решить эту проблему.

Взгляните на этот ТАК ответ

karen 07.09.2018 11:07

Можете ли вы вставить полный журнал исключения трассировки стека

clevertension 07.09.2018 11:13
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
227
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно информации, которую вы здесь предоставили, проблема связана с вашим классом ReloadableResourceBundleMessageSource, поскольку он не реализует интерфейс Serializable.

Это вызвано вашим class MyClass implements Serializable, поскольку переменные в классе Serializable должны быть либо Serializable, либо transient.

Итак, в соответствии с вашим классом, либо ваш класс ReloadableResourceBundleMessageSource должен реализовывать интерфейс Serializable, либо в вашем MyClass переменная должна выглядеть следующим образом

@Autowired(required=true)
private transient MessageSource messages;

Надеюсь, это поможет

Другие вопросы по теме