Я использую 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 не регистрируется, когда я вызываю из слушателя сеанса?