Я пытаюсь получить приложение для разработки приложений Google App, работающее с JPA, Google Cloud SQL и локальной базой данных MySQL. Я использую плагин GAE eclipse. Я зарегистрировался для экземпляра SQL облака Google. Настроил параметры приложения в проекте, чтобы использовать Google Cloud SQL, и ввел информацию о подключении для локальной базы данных MySQL и для экземпляра облачного SQL.GAE google cloud sql JPA local mysql с пустыми результатами
Усилители ядра данных собирают мои 57 классов, и я вижу журнал с успешно оптимизированными классами. Я запускаю свое приложение в Eclipse, и среда dev успешно запускается, и я могу перейти в мое приложение через браузер.
Проблема в том, что данные в базе данных не могут быть получены из вызовов JPA. Я не вижу ошибок в выводе приложения. Я запускаю отладчик, и вызовы JPA запускаются успешно, не выбрасывая исключение в исходный код приложения. Я получаю пустой список из поиска.
Я не уверен, что делать здесь. Я исследовал онлайн в течение некоторого времени, и я не могу понять, что я делаю неправильно. Трудно отследить что-то, когда у меня нет исключения или что-то использовать.
Моя догадка заключается в том, что что-то не удается, но ошибка может быть проглочена или, может быть, ограничение. Я также попытался изменить вызовы JPA, используя построитель критериев, а затем используя прямо вверх JPQL. Все равно получайте те же результаты.
Проверено аргументы dev-серверу, и я вижу аргументы, которые используются в конфигурации, которую я ввел для локального сервера mysql. Возможно ли, что аргументы игнорируются каким-то образом?
Любая помощь будет оценена по достоинству.
persistence.xml - (только 2 классов для тестирования)
<persistence-unit name="iberis-jpa">
<provider>org.datanucleus.api.jpa.PersistenceProviderImpl</provider>
<class>com.bizznetworxonline.iberis.core.SystemArea</class>
<class>com.bizznetworxonline.iberis.core.SystemUnit</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="datanucleus.NontransactionalRead" value="true"/>
<property name="datanucleus.NontransactionalWrite" value="true"/>
<property name="datanucleus.ConnectionURL" value="appengine"/>
</properties>
</persistence-unit>
JPQL вызова:
public List<?> findAll(Class<?> entityClass)
{
EntityManager em = JPA_EMF.get().createEntityManager();
javax.persistence.Query q = em.createQuery("SELECT o FROM " + entityClass.getSimpleName() + " o",entityClass);
List<?> results = q.getResultList();
return results;
}
Выход из консоли:
Mar 30, 2013 9:49:06 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed /home/user/Documents/eclipse-workspace/IberisAdmin/war/WEB-INF/appengine-web.xml
Mar 30, 2013 9:49:06 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed /home/user/Documents/eclipse-workspace/IberisAdmin/war/WEB-INF/web.xml
Mar 30, 2013 9:49:06 PM com.google.appengine.tools.development.SystemPropertiesManager setSystemProperties
INFO: Overwriting system property key 'java.util.logging.config.file', value '/home/user/.eclipse/org.eclipse.platform_3.7.0_155965261/plugins/com.google.appengine.eclipse.sdkbundle_1.7.6/appengine-java-sdk-1.7.6/config/sdk/logging.properties' with value 'WEB-INF/logging.properties' from '/home/user/Documents/eclipse-workspace/IberisAdmin/war/WEB-INF/appengine-web.xml'
Mar 30, 2013 9:49:07 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Mar 30, 2013 9:49:07 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: jetty-6.1.x
Mar 30, 2013 9:49:10 PM com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Mojarra 2.1.12 (20120814-1522) for context ''
Mar 30, 2013 9:49:13 PM com.sun.faces.spi.InjectionProviderFactory createInstance
INFO: JSF1048: PostConstruct/PreDestroy annotations present. ManagedBeans methods marked with these annotations will have said annotations processed.
Mar 30, 2013 9:49:21 PM org.primefaces.webapp.PostConstructApplicationEventListener processEvent
INFO: Running on PrimeFaces 3.5
Mar 30, 2013 9:49:21 PM org.primefaces.extensions.application.PostConstructApplicationEventListener processEvent
INFO: Running on PrimeFaces Extensions 0.6.3
Mar 30, 2013 9:49:22 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Started [email protected]:8888
Mar 30, 2013 9:49:22 PM com.google.appengine.tools.development.AbstractServer startup
INFO: Server default is running at http://localhost:8888/
Mar 30, 2013 9:49:22 PM com.google.appengine.tools.development.AbstractServer startup
INFO: The admin console is running at http://localhost:8888/_ah/admin
Mar 30, 2013 9:49:22 PM com.google.appengine.tools.development.DevAppServerImpl start
INFO: Dev App Server is now running
Mar 30, 2013 9:49:35 PM com.google.appengine.api.datastore.dev.LocalDatastoreService init
INFO: Local Datastore initialized:
Type: High Replication
Storage: /home/user/Documents/eclipse-workspace/IberisAdmin/war/WEB-INF/appengine-generated/local_db.bin
Mar 30, 2013 9:49:35 PM com.google.appengine.api.datastore.dev.LocalDatastoreService load
INFO: The backing store, /home/user/Documents/eclipse-workspace/IberisAdmin/war/WEB- INF/appengine-generated/local_db.bin, does not exist. It will be created.
Mar 30, 2013 9:49:37 PM com.google.apphosting.utils.jetty.JettyLogger warn
Я уже изменил свой код, чтобы использовать jpql, как то, что я разместил выше. Это не работает. Мой контроллер - это простой управляемый сеансом компонент, который все это делает, - это вызов этой функции для получения данных. Я не думаю, что проблема в контроллере. Виртуальная машина, которую я использую для моего разработчика, немного старше Ubuntu 12.04, и она прошла несколько обновлений для базовой ОС и Eclipse. Я предполагаю, что в моей среде что-то серьезно фьюхарно. Поскольку никто другой не имеет этой проблемы. Странно, что я не получаю ни одного сообщения об ошибке. –
Я собираюсь попробовать установить новую новую среду в новом vm, и я проведу там, чтобы узнать, что произойдет. Надеюсь, это сработает. –