繁体   English   中英

Spring Mvc Google应用引擎中的会话监听器

[英]Session Listener in Spring Mvc Google app engine

我正在使用Google App Engine,spring mvc和spring jpa dao。 在我的应用程序中,当会话被破坏时,我想从数据库中删除一个条目。 所以我正在使用会话侦听器,它实际上想通过spring dao bean从数据库中删除一个条目。

这是我在会话监听器中的代码

@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.com上的com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:118)上的com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:108)上org.datanucleus.store.appengine.query.DatastoreQuery.validate(DatastoreQuery.java:794)的.datastore.Query。(Query.java:112)org.datanucleus.store.appengine.query.DatastoreQuery.performExecute(DatastoreQuery。 java:225),位于org.datanucleus.store.appengine.query.JPQLQuery.performExecute(JPQLQuery.java:80)

任何人都可以告诉我为什么从会话侦听器调用时未注册api环境吗?

Google App Engine不支持会话监听器。 会话侦听器可以在本地调用,但是没有为该线程注册任何API环境。 在生产中,侦听器甚至不会调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM