Исключение сериализации с использованием весенних сессий - PullRequest
0 голосов
/ 03 декабря 2018

Primefaces / Joinfaces JSF приложение в Spring-Boot.

Приложение работает нормально, работает автономно, но я недавно начал внедрять репликацию сеансов через Spring-Session.Когда сеанс сохраняется в хранилище сеансов, я получаю исключение, не сериализуемое.

Причина: java.io.NotSerializableException: com.company.application.service.dao.security.RoleBasedSecurityDao $$EnhancerBySpringCGLIB $$ 9de506c

Глядя на это сообщение об ошибке, похоже, что исключение сериализации относится не к самому классу, а к чему-то, принадлежащему классу.Единственное, что у него есть, - это JDBCTemplate.

@Repository
public class RoleBasedSecurityDao {
    private final static Logger log = LoggerFactory.getLogger(RoleBasedSecurityDao.class);

    private NamedParameterJdbcTemplate jdbcTemplate;

    @Autowired
    @Qualifier("dataSource")
    public void setDataSource(DataSource dataSource) {
        jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
    }
[...]
}

Если я добавлю «реализацию Serializable» в определение класса, ошибка изменится:

Причина: java.io.NotSerializableException: org.springframework.dao.support.PersistenceExceptionTranslationInterceptor

Я не знаком с JSF, но из того, что я прочитал, ожидается, что все ваши классы JSF являются сериализуемыми.Как я могу сделать сериализуемый мой DAO, когда ему нужен экземпляр JdbcTemplate?

1 Ответ

0 голосов
/ 04 декабря 2018

Как указал @Selaron, проблема заключалась в нестационарных пружинных компонентах на контроллерах JSF.Не делай этого.

...