2015-08-28 3 views
0

Я создаю кэш с реализацией CacheStoreFactory и CacheStoreSessionListener. Если я устанавливаю CacheConfiguration с этими полями, а затем вызвать createCache, но в методе INSTANCE я получаю это исключение:createCache сбой в нестационарном методе

Исключение в потоке «главный» javax.cache.CacheException: класс org.apache.ignite.IgniteCheckedException: не удалось проверить кэш конфигурации (убедитесь, что все объекты в конфигурации кэша являются сериализации): LongCache

в статическом методе, это не происходит. Это можно легко воспроизвести, изменив пример CacheJdbcStoreExample.java в примерах. Это происходит под Ignite 1.30

ответ

1

Скорее всего, вы объявили фабрику или слушателя анонимным классом. Анонимные классы всегда содержат ссылку на родительский класс (LongCache в вашем случае). Поэтому, если фабрика сериализована в контексте экземпляра LongCache, этот экземпляр также сериализуется. В случае статического метода этот экземпляр не существует, поэтому все работает.

Я бы рекомендовал преобразовать анонимные классы в частные статические классы. Это даст вам больше контроля над сериализацией.

+0

Отлично, это решило проблему, спасибо за отзыв. – endian

 Смежные вопросы

  • Нет связанных вопросов^_^