Здесь у нас есть веб-приложение на основе Spring в движке приложений Google.
Я создал класс UserDetailService
для загрузки UserDetails
из хранилища данных GAE (при условии, что это лучший подход).
@Service("springUserDetailsService")
public class SpringUserDetailsService implements UserDetailsService {
@Resource(name="userDao")
private IUserDao userDao;
//...
Но GAE выдает следующее исключение (по-видимому), когда пытается сохранить сеанс в хранилище данных.
java.lang.RuntimeException: java.io.NotSerializableException: com.prepayproxy.servicelayer.SpringUserDetailsService
at com.google.apphosting.runtime.jetty.SessionManager.serialize(SessionManager.java:387)
at com.google.apphosting.runtime.jetty.SessionManager.createEntityForSession(SessionManager.java:364)
Сначала я подумал сериализовать объект SprintUserDetailsService
, но у него есть ссылка на мой UserDao
, который, в свою очередь, имеет ссылки на объекты источника данных, примерно в этот момент я испугался и решил посмотреть, есть ли лучший подход.