我使用Google App Engine,spring mvc和spring jpa dao。在我的应用程序中,我想在会话销毁时从数据库中删除一个条目。所以我使用会话侦听器,它实际上想通过spring dao bean从数据库中删除一个条目。Spring Mvc中的Session Listener谷歌应用引擎
这是我在会话监听
@Override
public void sessionDestroyed(HttpSessionEvent se) {
//get entry from session and now remove entry from database
getMyDao(se).delete(entry);
}
private MyDao getMyDao(HttpSessionEvent sessionEvent){
HttpSession session = sessionEvent.getSession();
ApplicationContext ctx =
WebApplicationContextUtils.
getWebApplicationContext(session.getServletContext());
MyDao dao =
(MyDao) ctx.getBean("myDao");
return dao;
}
我收到以下错误,当我尝试删除
显示java.lang.NullPointerException代码:没有API环境下注册了这个线程。 在com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:108) 在com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:118) 在com.google。 appengine.api.datastore.Query。(Query.java:112) at org.datanucleus.store.appengine.query.DatastoreQuery.validate(DatastoreQuery.java:794) at org.datanucleus.store.appengine.query.DatastoreQuery .performExecute(DatastoreQuery.java:225) 在org.datanucleus.store.appengine.query.JPQLQuery.performExecute(JPQLQuery.java:80)
任何一个可以告诉我为什么,当我调用API环境未注册来自会话监听器?