Слушатель сеанса в Spring Mvc, движок приложения Google - PullRequest
1 голос
/ 06 ноября 2011

Я использую 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.datastore.DatastoreApiHelper.getCurrentAppId (DatastoreApiHelper.java:108) по адресу com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace (Datasapp.jpg: 11p..datastore.Query. (Query.java:112) в org.datanucleus.store.appengine.query.DatastoreQuery.validate (DatastoreQuery.java:794) в org.datanucleus.store.appengine.query.DatastoreQuery.atteJava: 225) в org.datanucleus.store.appengine.query.JPQLQuery.performExecute (JPQLQuery.java:80)

Может ли кто-нибудь сказать мне, почему среда api не регистрируется, когда я вызываю из слушателя сеанса?

1 Ответ

1 голос
/ 22 июня 2012

Google App Engine не поддерживает прослушиватели сеансов.Слушатели сеанса могут получать вызовы локально, но среда API для этого потока не зарегистрированаПри производстве слушатели даже не будут вызывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...