gpt4 book ai didi

java - Spring Mvc Google 应用程序引擎中的 session 监听器

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:24 24 4
gpt4 key购买 nike

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

这是我在 session 监听器中的代码

@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) 在 org.datanucleus.store.appengine.query.DatastoreQuery.validate(DatastoreQuery.java:794) 在 org.datanucleus.store.appengine.query.DatastoreQuery.performExecute(DatastoreQuery.java:225) 在 org.datanucleus.store.appengine.query.JPQLQuery.performExecute(JPQLQuery.java:80)

谁能告诉我为什么当我从 session 监听器调用时没有注册 api 环境?

最佳答案

Google App Engine 不支持 session 监听器。 session 监听器可能会在本地调用,但没有为此线程注册 API 环境。在生产环境中,监听器甚至不会调用。

关于java - Spring Mvc Google 应用程序引擎中的 session 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8029598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com