Я создаю приложение с google app engine и grails. У меня есть контроллер, настроенный для вызова приложения Flex. Контроллер вызывает службу, чтобы получить список обратно и отправить его обратно во Flex.
Клиент Flex может вернуть данные один раз. Также, если я вызываю действие в браузере, я могу вызвать действие и получить данные обратно. Проблема, которую я обнаружил, заключается в том, что она не может вызвать ее более одного раза, потому что приложение использует JDO, и после первого вызова я получаю сообщение об ошибке, говорящее о том, что persistenceManager был закрыт.
Я прочитал несколько постов, в которых показано, как настроить одну тонну и просто получить экземпляр persistanceManager, когда вам это нужно, но, похоже, это тоже не работает.
Я впервые работаю с JDO, и я мог бы воспользоваться некоторыми советами, чтобы заставить эти службы работать на постоянной основе.
Вот код службы, которая на самом деле запрашивает хранилище данных.
package com.dlish.fulcrum
import com.dlish.fulcrum.PMF
import org.springframework.beans.factory.InitializingBean
import com.google.appengine.api.datastore.*
import com.dlish.fulcrum.Show
class VenueBlastService {
static transactional = true
def grailsApplication
def setting
void afterPropertiesSet()
{
this.setting = grailsApplication.config.setting
}
def persistenceManager
def getAllShows() {
def query = persistenceManager.newQuery( Show )
def showInstanceList = query.execute()
return showInstanceList
}
}