Here we have a Spring based webapp in google apps engine.
I've created a UserDetailService
class to load the UserDetails
from the GAE data store (assuming this is the best approach).
@Service("springUserDetailsService")
public class SpringUserDetailsService implements UserDetailsService {
@Resource(name="userDao")
private IUserDao userDao;
//...
But GAE throws the following exception (apparently) when it tries to persist the session to the data store.
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)
I first thought to Serialize the SprintUserDetailsService
object, but it has a reference to my UserDao
, which in turn has references to data source objects, at about that point I freaked out and decided to see if there's a better approach.