Dmitry, just a quick off topic question. Did your application work properly after you upload to the Google App Engine? It works properly when i run it on my local app server, but there is error loading Spring when i upload it.
I decided to change my Spring to 3.0.0.M4, and the logs showed: Caused by: org.apache.tapestry5.ioc.internal.OperationException: Error creating bean with name 'org.springframework.context.annotation.internalPersistenceAnnotationProcessor': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/naming/NamingException Sigh, just check the GAE JRE class white list, javax.naming.NamingException is not even accessible. sodium wrote: > > Hi Dmitry, > > Thanks for sharing again. I finally able to figure out whats wrong. The > problem is that i am only using maven2 building instead of Google App > Engine plugin for Eclipse. > > Here's what i done to correct it in case anyone needed it. My setup is > basically same as Mr. Dmitry except that i using maven built instead. In > my maven .pom i included the data-nucleus plugin to enhance the files > during compile time. > > <!-- Datanucleus enhance --> > <plugin> > <groupId>org.datanucleus</groupId> > <artifactId>maven-datanucleus-plugin</artifactId> > <version>1.1.4</version> > <configuration> > <mappingIncludes>**/*.class</mappingIncludes> > <verbose>true</verbose> > <enhancerName>ASM</enhancerName> > <api>JPA</api> > </configuration> > <executions> > <execution> > <phase>compile</phase> > <goals> > <goal>enhance</goal> > </goals> > </execution> > </executions> > </plugin> > > *Remember to include the persistence.xml in WEB-INF/classes/META-INF/ for > enhancement. > > By the way, i noticed that there is a significant performance degrade > using Spring as the glue as compared to my old project using > tapestry-hibernate module. > > > Dmitry Gusev wrote: >> >> I'm using 5.2.0.0-SNAPSHOT and Spring 3.0.0-RC1. >> >> Here's my *web.xml*: >> <?xml version="1.0" encoding="utf-8"?> >> <web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5"> >> <context-param> >> <param-name>tapestry.app-package</param-name> >> <param-value>dmitrygusev.ping</param-value> >> </context-param> >> <filter> >> <filter-name>app</filter-name> >> >> <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class> >> </filter> >> <filter-mapping> >> <filter-name>app</filter-name> >> <url-pattern>/*</url-pattern> >> </filter-mapping> >> </web-app> >> >> I'm using maven2 in separate project to get a list of all jar >> dependencies >> and them copying them to my GAE eclipse project. >> Here's my *pom.xml*: >> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" >> http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >> http://maven.apache.org/maven-v4_0_0.xsd"> >> <modelVersion>4.0.0</modelVersion> >> <groupId>dmitrygusev</groupId> >> <artifactId>jar-dependencies-assembly</artifactId> >> <packaging>war</packaging> >> <version>1.0-SNAPSHOT</version> >> <name>jar-dependencies-assembly</name> >> <dependencies> >> <dependency> >> <groupId>org.springframework</groupId> >> <artifactId>org.springframework.spring-library</artifactId> >> <type>libd</type> >> <version>3.0.0.RC1</version> >> </dependency> >> <dependency> >> <groupId>org.springframework</groupId> >> <artifactId>org.springframework.aspects</artifactId> >> <version>3.0.0.RC1</version> >> </dependency> >> <dependency> >> <groupId>org.aspectj</groupId> >> <artifactId>aspectjweaver</artifactId> >> <version>1.6.2</version> >> </dependency> >> <dependency> >> <groupId>org.apache.tapestry</groupId> >> <artifactId>tapestry-ioc</artifactId> >> <version>5.2.0-SNAPSHOT</version> >> </dependency> >> <dependency> >> <groupId>org.apache.tapestry</groupId> >> <artifactId>tapestry5-annotations</artifactId> >> <version>5.2.0-SNAPSHOT</version> >> </dependency> >> <dependency> >> <groupId>org.apache.tapestry</groupId> >> <artifactId>tapestry-core</artifactId> >> <version>5.2.0-SNAPSHOT</version> >> </dependency> >> <dependency> >> <groupId>org.apache.tapestry</groupId> >> <artifactId>tapestry-spring</artifactId> >> <version>5.2.0-SNAPSHOT</version> >> </dependency> >> <dependency> >> <groupId>anjlab</groupId> >> <artifactId>cubics-core</artifactId> >> <version>1.0.0</version> >> </dependency> >> <dependency> >> <groupId>anjlab</groupId> >> <artifactId>cubics-renders</artifactId> >> <version>1.0.0</version> >> </dependency> >> </dependencies> >> <repositories> >> <repository> >> <id>SpringSource Enterprise Bundle Repository - External >> Bundle >> Milestones</id> >> >> <url>http://repository.springsource.com/maven/bundles/milestone >> </url> >> </repository> >> <repository> >> <id>SpringSource Enterprise Bundle Repository - SpringSource >> Bundle Releases</id> >> <url>http://repository.springsource.com/maven/bundles/release >> </url> >> </repository> >> <repository> >> <id>SpringSource Enterprise Bundle Repository - External >> Bundle >> Releases</id> >> >> <url>http://repository.springsource.com/maven/bundles/external >> </url> >> </repository> >> <repository> >> <id>SpringSource Enterprise Bundle Repository - Library >> Milestones</id> >> <url> >> http://repository.springsource.com/maven/libraries/milestone</url> >> </repository> >> </repositories> >> </project> >> >> Now, here's what I have in *ping-service\war\WEB-INF\lib*: >> >> antlr-runtime-3.1.1.jar >> aopalliance-1.0.jar >> appengine-api-1.0-sdk-1.2.6.jar >> appengine-api-labs-1.2.6.jar >> aspectjweaver-1.6.2.jar >> com.springsource.javax.servlet-2.5.0.jar >> com.springsource.org.aopalliance-1.0.0.jar >> com.springsource.org.apache.commons.logging-1.1.1.jar >> commons-codec-1.3.jar >> commons-logging-1.1.1.jar >> cubics-core-1.0.0.jar >> cubics-renders-1.0.0.jar >> datanucleus-appengine-1.0.3.jar >> datanucleus-core-1.1.5.jar >> datanucleus-jpa-1.1.5.jar >> geronimo-jpa_3.0_spec-1.1.1.jar >> geronimo-jta_1.1_spec-1.1.1.jar >> javassist-3.9.0.GA.jar >> jdo2-api-2.3-eb.jar >> log4j-1.2.14.jar >> org.springframework.aop-3.0.0.RC1.jar >> org.springframework.asm-3.0.0.RC1.jar >> org.springframework.aspects-3.0.0.RC1.jar >> org.springframework.beans-3.0.0.RC1.jar >> org.springframework.context.support-3.0.0.RC1.jar >> org.springframework.context-3.0.0.RC1.jar >> org.springframework.core-3.0.0.RC1.jar >> org.springframework.expression-3.0.0.RC1.jar >> org.springframework.jdbc-3.0.0.RC1.jar >> org.springframework.jms-3.0.0.RC1.jar >> org.springframework.orm-3.0.0.RC1.jar >> org.springframework.oxm-3.0.0.RC1.jar >> org.springframework.transaction-3.0.0.RC1.jar >> org.springframework.web.portlet-3.0.0.RC1.jar >> org.springframework.web.servlet-3.0.0.RC1.jar >> org.springframework.web-3.0.0.RC1.jar >> slf4j-api-1.5.2.jar >> slf4j-log4j12-1.5.2.jar >> stax2-api-3.0.1.jar >> stax-api-1.0.1.jar >> tapestry5-annotations-5.2.0-SNAPSHOT.jar >> tapestry-core-5.2.0-SNAPSHOT.jar >> tapestry-ioc-5.2.0-SNAPSHOT.jar >> tapestry-spring-5.2.0-SNAPSHOT.jar >> woodstox-core-asl-4.0.3.jar >> >> On Tue, Nov 10, 2009 at 01:12, sodium <sodiu...@yahoo.com> wrote: >> >>> >>> Hi Dmitry, >>> >>> Thanks for sharing. I tried integrating the Spring in it but it keep >>> spitting out all sorts of errors when its constructing the bean from the >>> applicationContext.xml. Can u share how u integrate Spring in it? I >>> noticed >>> that u r using the Spring 3.x instead. >>> >>> I tried integrate with TapestrySpringFilter and it seems to be using >>> Spring >>> 2.5.6. So i decided to change your applicationContext.xml schema to 2.5 >>> instead. >>> >>> Here's my web.xml >>> <!-- >>> <filter> >>> <filter-name>app</filter-name> >>> <filter-class>org.apache.tapestry5.TapestryFilter</filter-class> >>> </filter> >>> --> >>> <filter> >>> <filter-name>app</filter-name> >>> >>> >>> <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class> >>> </filter> >>> <context-param> >>> <param-name>contextConfigLocation</param-name> >>> >>> <param-value>/WEB-INF/applicationContext.xml</param-value> >>> </context-param> >>> >>> Here's my maven build to include more dependencies from your given >>> applicationContext.xml >>> >>> <dependency> >>> <groupId>org.apache.tapestry</groupId> >>> <artifactId>tapestry-spring</artifactId> >>> <version>${tapestry-release-version}</version> >>> </dependency> >>> <dependency> >>> <groupId>org.springframework</groupId> >>> <artifactId>spring-jdbc</artifactId> >>> <version>2.5.6</version> >>> </dependency> >>> <dependency> >>> <groupId>org.springframework</groupId> >>> <artifactId>spring-orm</artifactId> >>> <version>2.5.6</version> >>> </dependency> >>> <dependency> >>> <groupId>org.springframework</groupId> >>> <artifactId>spring-aspects</artifactId> >>> <version>2.5.6</version> >>> </dependency> >>> <dependency> >>> <groupId>org.springframework</groupId> >>> <artifactId>spring-tx</artifactId> >>> <version>2.5.6</version> >>> </dependency> >>> <dependency> >>> <groupId>org.springframework</groupId> >>> <artifactId>spring-aop</artifactId> >>> <version>2.5.6</version> >>> </dependency> >>> >>> Am i missing out something here? I tried using Tapestry 5.1.0.5 and also >>> the >>> 5.2 built from trunk. >>> >>> Here's the error: >>> >>> [INFO] ioc.RegistryBuilder Adding module definition for class >>> org.apache.tapestry5.ioc.services.TapestryIOCModule >>> [INFO] ioc.RegistryBuilder Adding module definition for class >>> com.kenai.tapestryjpa.JPAModule >>> [INFO] ioc.RegistryBuilder Adding module definition for class >>> com.kenai.tapestryjpa.JPACoreModule >>> [INFO] ioc.RegistryBuilder Adding module definition for class >>> org.apache.tapestry5.spring.SpringModule >>> [INFO] ioc.RegistryBuilder Adding module definition for class >>> org.apache.tapestry5.services.TapestryModule >>> [INFO] ioc.RegistryBuilder Adding module definition for class >>> org.apache.tapestry5.internal.services.InternalModule >>> [INFO] ioc.RegistryBuilder Adding module definition for class >>> com.myproject.services.AppModule >>> [INFO] SpringModuleDef.ApplicationContext Starting Spring (version >>> 2.5.6) >>> [INFO] context.ContextLoader Root WebApplicationContext: initialization >>> started >>> [INFO] spring.TapestryApplicationContext Refreshing >>> org.apache.tapestry5.spring.tapestryapplicationcont...@39060b: display >>> name >>> [Root WebApplicationContext]; startup date [Mon Nov 09 22:03:52 UTC >>> 2009]; >>> root of context hierarchy >>> [INFO] xml.XmlBeanDefinitionReader Loading XML bean definitions from >>> ServletContext resource [/WEB-INF/applicationContext.xml] >>> [INFO] spring.TapestryApplicationContext Bean factory for application >>> context [org.apache.tapestry5.spring.tapestryapplicationcont...@39060b]: >>> org.apache.tapestry5.internal.spring.tapestybeanfact...@d23e53 >>> [INFO] spring.TapestyBeanFactory Pre-instantiating singletons in >>> org.apache.tapestry5.internal.spring.tapestybeanfact...@d23e53: defining >>> beans >>> >>> [txAdvice,org.springframework.aop.config.internalAutoProxyCreator,daoOperations,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,entityManagerFactory,txManager,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,personDAO]; >>> root of factory hierarchy >>> [INFO] jpa.LocalEntityManagerFactoryBean Building JPA >>> EntityManagerFactory >>> for persistence unit 'transactions-optional' >>> [INFO] DataNucleus.Plugin Bundle "org.datanucleus.jpa" has an optional >>> dependency to "org.datanucleus.enhancer" but it cannot be resolved >>> [INFO] DataNucleus.Plugin Bundle "org.datanucleus" has an optional >>> dependency to "org.eclipse.equinox.registry" but it cannot be resolved >>> [INFO] DataNucleus.Plugin Bundle "org.datanucleus" has an optional >>> dependency to "org.eclipse.core.runtime" but it cannot be resolved >>> [WARN] DataNucleus.JPA No META-INF/persistence.xml files were found in >>> the >>> CLASSPATH of the current thread! >>> [WARN] DataNucleus.JPA No persistence unit of name >>> "transactions-optional" >>> is found in the CLASSPATH of the current thread! >>> [INFO] spring.TapestyBeanFactory Destroying singletons in >>> org.apache.tapestry5.internal.spring.tapestybeanfact...@d23e53: defining >>> beans >>> >>> [txAdvice,org.springframework.aop.config.internalAutoProxyCreator,daoOperations,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,entityManagerFactory,txManager,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,personDAO]; >>> root of factory hierarchy >>> [ERROR] context.ContextLoader Context initialization failed >>> org.springframework.beans.factory.BeanCreationException: Error creating >>> bean >>> with name 'txAdvice': Cannot resolve reference to bean 'txManager' while >>> setting bean property 'transactionManager'; nested exception is >>> org.springframework.beans.factory.BeanCreationException: Error creating >>> bean >>> with name 'txManager' defined in ServletContext resource >>> [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean >>> 'entityManagerFactory' while setting bean property >>> 'entityManagerFactory'; >>> nested exception is >>> org.springframework.beans.factory.BeanCreationException: >>> Error creating bean with name 'entityManagerFactory' defined in >>> ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of >>> init method failed; nested exception is >>> javax.persistence.PersistenceException: Provider error. Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275) >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) >>> at >>> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) >>> at >>> >>> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) >>> at >>> >>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) >>> at >>> >>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) >>> at >>> >>> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) >>> at >>> >>> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) >>> at >>> >>> org.apache.tapestry5.internal.spring.SpringModuleDef$3$1.invoke(SpringModuleDef.java:176) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941) >>> at >>> >>> org.apache.tapestry5.internal.spring.SpringModuleDef$3.createObject(SpringModuleDef.java:166) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) >>> at >>> >>> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) >>> at >>> >>> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46) >>> at >>> >>> org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:60) >>> at >>> >>> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:52) >>> at >>> >>> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) >>> at >>> >>> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:57) >>> at >>> >>> $ConfigurableWebApplicationContext_124daf973a0.delegate($ConfigurableWebApplicationContext_124daf973a0.java) >>> at >>> >>> $ConfigurableWebApplicationContext_124daf973a0.getBeanDefinitionCount($ConfigurableWebApplicationContext_124daf973a0.java) >>> at >>> >>> org.apache.tapestry5.spring.SpringModule$1.initializeApplication(SpringModule.java:53) >>> at >>> >>> $ApplicationInitializer_124daf973bb.initializeApplication($ApplicationInitializer_124daf973bb.java) >>> at >>> >>> org.apache.tapestry5.services.TapestryModule$35.initializeApplication(TapestryModule.java:2132) >>> at >>> >>> $ApplicationInitializer_124daf973bb.initializeApplication($ApplicationInitializer_124daf973bb.java) >>> at >>> >>> $ApplicationInitializer_124daf973b7.initializeApplication($ApplicationInitializer_124daf973b7.java) >>> at >>> >>> org.apache.tapestry5.services.TapestryModule$ServletApplicationInitializerTerminator.initializeApplication(TapestryModule.java:223) >>> at >>> >>> $ServletApplicationInitializer_124daf9739b.initializeApplication($ServletApplicationInitializer_124daf9739b.java) >>> at >>> org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:85) >>> at >>> org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:99) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) >>> at >>> >>> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:589) >>> at >>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139) >>> at >>> >>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218) >>> at >>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500) >>> at >>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) >>> at >>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) >>> at >>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117) >>> at org.mortbay.jetty.Server.doStart(Server.java:217) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) >>> at >>> >>> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:181) >>> at >>> >>> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:116) >>> at >>> >>> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217) >>> at >>> >>> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162) >>> at >>> >>> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48) >>> at >>> >>> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113) >>> at >>> >>> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89) >>> Caused by: org.springframework.beans.factory.BeanCreationException: >>> Error >>> creating bean with name 'txManager' defined in ServletContext resource >>> [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean >>> 'entityManagerFactory' while setting bean property >>> 'entityManagerFactory'; >>> nested exception is >>> org.springframework.beans.factory.BeanCreationException: >>> Error creating bean with name 'entityManagerFactory' defined in >>> ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of >>> init method failed; nested exception is >>> javax.persistence.PersistenceException: Provider error. Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275) >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) >>> at >>> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269) >>> ... 69 more >>> Caused by: org.springframework.beans.factory.BeanCreationException: >>> Error >>> creating bean with name 'entityManagerFactory' defined in ServletContext >>> resource [/WEB-INF/applicationContext.xml]: Invocation of init method >>> failed; nested exception is javax.persistence.PersistenceException: >>> Provider >>> error. Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) >>> at >>> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269) >>> ... 82 more >>> Caused by: javax.persistence.PersistenceException: Provider error. >>> Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> at >>> javax.persistence.Persistence.createFactory(Persistence.java:176) >>> at >>> >>> javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:112) >>> at >>> >>> org.springframework.orm.jpa.LocalEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalEntityManagerFactoryBean.java:91) >>> at >>> >>> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:291) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) >>> ... 92 more >>> Caused by: java.lang.NullPointerException >>> at >>> >>> org.datanucleus.jpa.EntityManagerFactoryImpl.initialisePMF(EntityManagerFactoryImpl.java:452) >>> at >>> >>> org.datanucleus.jpa.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:355) >>> at >>> >>> org.datanucleus.store.appengine.jpa.DatastoreEntityManagerFactory.<init>(DatastoreEntityManagerFactory.java:63) >>> at >>> >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider.createEntityManagerFactory(DatastorePersistenceProvider.java:35) >>> at >>> javax.persistence.Persistence.createFactory(Persistence.java:172) >>> ... 97 more >>> [ERROR] ioc.Registry Error creating bean with name 'txAdvice': Cannot >>> resolve reference to bean 'txManager' while setting bean property >>> 'transactionManager'; nested exception is >>> org.springframework.beans.factory.BeanCreationException: Error creating >>> bean >>> with name 'txManager' defined in ServletContext resource >>> [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean >>> 'entityManagerFactory' while setting bean property >>> 'entityManagerFactory'; >>> nested exception is >>> org.springframework.beans.factory.BeanCreationException: >>> Error creating bean with name 'entityManagerFactory' defined in >>> ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of >>> init method failed; nested exception is >>> javax.persistence.PersistenceException: Provider error. Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> [ERROR] ioc.Registry Operations trace: >>> [ERROR] ioc.Registry [ 1] Realizing service ApplicationContext >>> [ERROR] ioc.Registry [ 2] Invoking ObjectCreator for Spring >>> ApplicationContext >>> [ERROR] ioc.Registry [ 3] Creating Spring ApplicationContext via >>> ContextLoader >>> [ERROR] SpringModuleDef.ApplicationContext Construction of service >>> ApplicationContext failed: Error creating bean with name 'txAdvice': >>> Cannot >>> resolve reference to bean 'txManager' while setting bean property >>> 'transactionManager'; nested exception is >>> org.springframework.beans.factory.BeanCreationException: Error creating >>> bean >>> with name 'txManager' defined in ServletContext resource >>> [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean >>> 'entityManagerFactory' while setting bean property >>> 'entityManagerFactory'; >>> nested exception is >>> org.springframework.beans.factory.BeanCreationException: >>> Error creating bean with name 'entityManagerFactory' defined in >>> ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of >>> init method failed; nested exception is >>> javax.persistence.PersistenceException: Provider error. Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> org.apache.tapestry5.ioc.internal.OperationException: Error creating >>> bean >>> with name 'txAdvice': Cannot resolve reference to bean 'txManager' while >>> setting bean property 'transactionManager'; nested exception is >>> org.springframework.beans.factory.BeanCreationException: Error creating >>> bean >>> with name 'txManager' defined in ServletContext resource >>> [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean >>> 'entityManagerFactory' while setting bean property >>> 'entityManagerFactory'; >>> nested exception is >>> org.springframework.beans.factory.BeanCreationException: >>> Error creating bean with name 'entityManagerFactory' defined in >>> ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of >>> init method failed; nested exception is >>> javax.persistence.PersistenceException: Provider error. Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:90) >>> at >>> >>> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941) >>> at >>> >>> org.apache.tapestry5.internal.spring.SpringModuleDef$3.createObject(SpringModuleDef.java:166) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) >>> at >>> >>> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) >>> at >>> >>> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46) >>> at >>> >>> org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:60) >>> at >>> >>> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:52) >>> at >>> >>> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) >>> at >>> >>> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:68) >>> at >>> >>> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:57) >>> at >>> >>> $ConfigurableWebApplicationContext_124daf973a0.delegate($ConfigurableWebApplicationContext_124daf973a0.java) >>> at >>> >>> $ConfigurableWebApplicationContext_124daf973a0.getBeanDefinitionCount($ConfigurableWebApplicationContext_124daf973a0.java) >>> at >>> >>> org.apache.tapestry5.spring.SpringModule$1.initializeApplication(SpringModule.java:53) >>> at >>> >>> $ApplicationInitializer_124daf973bb.initializeApplication($ApplicationInitializer_124daf973bb.java) >>> at >>> >>> org.apache.tapestry5.services.TapestryModule$35.initializeApplication(TapestryModule.java:2132) >>> at >>> >>> $ApplicationInitializer_124daf973bb.initializeApplication($ApplicationInitializer_124daf973bb.java) >>> at >>> >>> $ApplicationInitializer_124daf973b7.initializeApplication($ApplicationInitializer_124daf973b7.java) >>> at >>> >>> org.apache.tapestry5.services.TapestryModule$ServletApplicationInitializerTerminator.initializeApplication(TapestryModule.java:223) >>> at >>> >>> $ServletApplicationInitializer_124daf9739b.initializeApplication($ServletApplicationInitializer_124daf9739b.java) >>> at >>> org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:85) >>> at >>> org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:99) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) >>> at >>> >>> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:589) >>> at >>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139) >>> at >>> >>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218) >>> at >>> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500) >>> at >>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) >>> at >>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) >>> at >>> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117) >>> at org.mortbay.jetty.Server.doStart(Server.java:217) >>> at >>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) >>> at >>> >>> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:181) >>> at >>> >>> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:116) >>> at >>> >>> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217) >>> at >>> >>> com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162) >>> at >>> >>> com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48) >>> at >>> >>> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113) >>> at >>> >>> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89) >>> Caused by: org.springframework.beans.factory.BeanCreationException: >>> Error >>> creating bean with name 'txAdvice': Cannot resolve reference to bean >>> 'txManager' while setting bean property 'transactionManager'; nested >>> exception is org.springframework.beans.factory.BeanCreationException: >>> Error >>> creating bean with name 'txManager' defined in ServletContext resource >>> [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean >>> 'entityManagerFactory' while setting bean property >>> 'entityManagerFactory'; >>> nested exception is >>> org.springframework.beans.factory.BeanCreationException: >>> Error creating bean with name 'entityManagerFactory' defined in >>> ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of >>> init method failed; nested exception is >>> javax.persistence.PersistenceException: Provider error. Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275) >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) >>> at >>> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) >>> at >>> >>> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) >>> at >>> >>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) >>> at >>> >>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) >>> at >>> >>> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) >>> at >>> >>> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) >>> at >>> >>> org.apache.tapestry5.internal.spring.SpringModuleDef$3$1.invoke(SpringModuleDef.java:176) >>> at >>> >>> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68) >>> ... 50 more >>> Caused by: org.springframework.beans.factory.BeanCreationException: >>> Error >>> creating bean with name 'txManager' defined in ServletContext resource >>> [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean >>> 'entityManagerFactory' while setting bean property >>> 'entityManagerFactory'; >>> nested exception is >>> org.springframework.beans.factory.BeanCreationException: >>> Error creating bean with name 'entityManagerFactory' defined in >>> ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of >>> init method failed; nested exception is >>> javax.persistence.PersistenceException: Provider error. Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275) >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) >>> at >>> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269) >>> ... 69 more >>> Caused by: org.springframework.beans.factory.BeanCreationException: >>> Error >>> creating bean with name 'entityManagerFactory' defined in ServletContext >>> resource [/WEB-INF/applicationContext.xml]: Invocation of init method >>> failed; nested exception is javax.persistence.PersistenceException: >>> Provider >>> error. Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) >>> at >>> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) >>> at >>> >>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269) >>> ... 82 more >>> Caused by: javax.persistence.PersistenceException: Provider error. >>> Provider: >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider >>> at >>> javax.persistence.Persistence.createFactory(Persistence.java:176) >>> at >>> >>> javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:112) >>> at >>> >>> org.springframework.orm.jpa.LocalEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalEntityManagerFactoryBean.java:91) >>> at >>> >>> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:291) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) >>> ... 92 more >>> Caused by: java.lang.NullPointerException >>> at >>> >>> org.datanucleus.jpa.EntityManagerFactoryImpl.initialisePMF(EntityManagerFactoryImpl.java:452) >>> at >>> >>> org.datanucleus.jpa.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:355) >>> at >>> >>> org.datanucleus.store.appengine.jpa.DatastoreEntityManagerFactory.<init>(DatastoreEntityManagerFactory.java:63) >>> at >>> >>> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider.createEntityManagerFactory(DatastorePersistenceProvider.java:35) >>> at >>> javax.persistence.Persistence.createFactory(Persistence.java:172) >>> ... 97 more >>> The server is running at http://localhost:8080/ >>> >>> >>> Dmitry Gusev wrote: >>> > >>> > Here's some examples: >>> > >>> > *ping-service\src\META-INF\persistence.xml:* >>> > <?xml version="1.0" encoding="UTF-8" ?> >>> > <persistence xmlns="http://java.sun.com/xml/ns/persistence" >>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> > xsi:schemaLocation="http://java.sun.com/xml/ns/persistence >>> > http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" >>> > version="1.0"> >>> > >>> > <persistence-unit name="transactions-optional"> >>> > >>> > >>> <provider>org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider</provider> >>> > <properties> >>> > <property name="datanucleus.NontransactionalRead" >>> > value="true"/> >>> > <property name="datanucleus.NontransactionalWrite" >>> > value="true"/> >>> > <property name="datanucleus.ConnectionURL" >>> value="appengine"/> >>> > </properties> >>> > </persistence-unit> >>> > >>> > </persistence> >>> > >>> > *ping-service\war\WEB-INF\applicationContext.xml:* >>> > >>> > <?xml version="1.0" encoding="UTF-8"?> >>> > <beans xmlns="http://www.springframework.org/schema/beans" >>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> > xmlns:aop="http://www.springframework.org/schema/aop" >>> > xmlns:tx="http://www.springframework.org/schema/tx" >>> > xmlns:context="http://www.springframework.org/schema/context" >>> > xsi:schemaLocation=" >>> > http://www.springframework.org/schema/beans >>> > >>> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd >>> > http://www.springframework.org/schema/tx >>> > http://www.springframework.org/schema/tx/spring-tx-3.0.xsd >>> > http://www.springframework.org/schema/aop >>> > http://www.springframework.org/schema/aop/spring-aop-3.0.xsd >>> > http://www.springframework.org/schema/context >>> > >>> > http://www.springframework.org/schema/context/spring-context-3.0.xsd >>> > "> >>> > >>> > <tx:advice id="txAdvice" transaction-manager="txManager"> >>> > <tx:attributes> >>> > <tx:method name="*" propagation="REQUIRES_NEW" /> >>> > </tx:attributes> >>> > </tx:advice> >>> > >>> > <aop:config> >>> > <aop:pointcut id="daoOperations" >>> > expression="execution(* >>> > dmitrygusev.ping.services.dao.*.*(..))" >>> > /> >>> > <aop:advisor advice-ref="txAdvice" >>> pointcut-ref="daoOperations" >>> /> >>> > </aop:config> >>> > >>> > <bean id="entityManagerFactory" >>> > >>> class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" >>> > lazy-init="true"> >>> > <property name="persistenceUnitName" >>> value="transactions-optional" >>> > /> >>> > </bean> >>> > >>> > <bean name="txManager" >>> > class="org.springframework.orm.jpa.JpaTransactionManager"> >>> > <property name="entityManagerFactory" >>> ref="entityManagerFactory" >>> > /> >>> > </bean> >>> > >>> > <context:annotation-config/> >>> > >>> > <bean name="jobsDAO" >>> > class="dmitrygusev.ping.services.dao.impl.JobDAOImpl"/> >>> > <bean name="refDAO" >>> > class="dmitrygusev.ping.services.dao.impl.RefDAOImpl"/> >>> > <bean name="accountDAO" >>> > class="dmitrygusev.ping.services.dao.impl.AccountDAOImpl"/> >>> > <bean name="scheduleDAO" >>> > class="dmitrygusev.ping.services.dao.impl.ScheduleDAOImpl"/> >>> > <bean name="jobResultDAO" >>> > class="dmitrygusev.ping.services.dao.impl.JobResultDAOImpl"/> >>> > >>> > </beans> >>> > >>> > *ping-service\src\dmitrygusev\ping\services\dao\ScheduleDAO.java :* >>> > package dmitrygusev.ping.services.dao; >>> > >>> > import com.google.appengine.api.datastore.Key; >>> > >>> > import dmitrygusev.ping.entities.Schedule; >>> > >>> > public interface ScheduleDAO { >>> > >>> > public abstract void update(Schedule schedule); >>> > >>> > public abstract void delete(Long id); >>> > >>> > public abstract Schedule createSchedule(String name); >>> > >>> > public abstract Schedule find(Key scheduleKey); >>> > >>> > } >>> > >>> > >>> *ping-service\src\dmitrygusev\ping\services\dao\impl\ScheduleDAOImpl.java >>> > :* >>> > package dmitrygusev.ping.services.dao.impl; >>> > >>> > import static com.google.appengine.api.datastore.KeyFactory.createKey; >>> > >>> > import javax.persistence.EntityManager; >>> > import javax.persistence.PersistenceContext; >>> > >>> > import com.google.appengine.api.datastore.Key; >>> > >>> > import dmitrygusev.ping.entities.Schedule; >>> > import dmitrygusev.ping.services.dao.ScheduleDAO; >>> > >>> > public class ScheduleDAOImpl implements ScheduleDAO { >>> > >>> > @PersistenceContext >>> > private EntityManager em; >>> > >>> > public Schedule createSchedule(String name) { >>> > Schedule schedule = new Schedule(); >>> > schedule.setName(name); >>> > >>> > em.persist(schedule); >>> > >>> > return schedule; >>> > } >>> > >>> > @Override >>> > public void update(Schedule schedule) { >>> > em.merge(schedule); >>> > } >>> > >>> > @Override >>> > public void delete(Long id) { >>> > Schedule schedule = >>> find(createKey(Schedule.class.getSimpleName(), >>> > id)); >>> > em.remove(schedule); >>> > } >>> > >>> > @Override >>> > public Schedule find(Key scheduleKey) { >>> > return em.find(Schedule.class, scheduleKey); >>> > } >>> > } >>> > >>> > >>> > *Then inject ScheduleDAO in your page class using T5's @Inject >>> annotation >>> > and use it.* >>> > >>> > >>> > >>> > On Sun, Nov 8, 2009 at 17:46, Dmitry Gusev <dmitry.gu...@gmail.com> >>> wrote: >>> > >>> >> Tapestry 5.1 should run on GAE 1.2.6(7) as is. >>> >> >>> >> I used T5.1 w/ Spring/JPA on GAE and didn't get any troubles at the >>> cloud >>> >> except some issues on development machine: >>> >> >>> >> >>> >> >>> http://dmitrygusev.blogspot.com/2009/10/develope-java-applications-with-gae-sdk.html >>> >> >>> >> >>> http://dmitrygusev.blogspot.com/2009/08/turn-java-security-manager-off-in.html >>> >> >>> >> >>> >> >>> >> On Sun, Nov 8, 2009 at 16:51, sodium <sodiu...@yahoo.com> wrote: >>> >> >>> >>> >>> >>> Hi, >>> >>> >>> >>> I have been using Tapestry5 for few of my projects and loving it, >>> but i >>> >>> am >>> >>> thinking of integrating it in Google App Engine. >>> >>> As for Tapestry 5.0.18, i have managed to run it without jpa support >>> by >>> >>> following an example of >>> >>> >>> >>> >>> http://old.nabble.com/SUCCESSFULL-deploy-Tapestry5-on-google-appengine-ts23018048.html >>> >>> >>> >>> >>> http://old.nabble.com/SUCCESSFULL-deploy-Tapestry5-on-google-appengine-ts23018048.html >>> >>> >>> >>> For Tapestry5.1, i still very confused about >>> >>> >>> >>> >>> http://old.nabble.com/Tapestry-5.1-running-in-Google-App-Engine-%28GAE%29-tp24923950p24927028.html >>> >>> >>> >>> >>> http://old.nabble.com/Tapestry-5.1-running-in-Google-App-Engine-%28GAE%29-tp24923950p24927028.html >>> >>> >>> >>> Actually my biggest concern is using jpa in GAE with Tapestry5, can >>> >>> anyone >>> >>> provide some clues on how to go about integrating Tap5 with jpa for >>> GAE >>> >>> ? >>> >>> If >>> >>> someone can provide a sample project for GAE(1.2.6) >>> Tapestry5(hopefully >>> >>> 5.1) >>> >>> integration with jpa support, i will definitely bow down to u like a >>> >>> slave. >>> >>> Been scratching my head so hard that my hair is starting to fall... >>> >>> >>> >>> I tried integration Tapestry 5.0.18 with guice2 for jpa support from >>> >>> >>> >>> >>> http://old.nabble.com/Integration-of-T5-with-the-domain-model-ts9953748s302.html >>> >>> >>> >>> >>> http://old.nabble.com/Integration-of-T5-with-the-domain-model-ts9953748s302.html >>> >>> but the EntityManager keep returning null. Sigh.. >>> >>> >>> >>> Any pointers and advice is very much appreciated. >>> >>> >>> >>> -- >>> >>> View this message in context: >>> >>> >>> http://old.nabble.com/GAE-and-Tapestry5-integration-tp26253952p26253952.html >>> >>> Sent from the Tapestry - User mailing list archive at Nabble.com. >>> >>> >>> >>> >>> >>> >>> --------------------------------------------------------------------- >>> >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >>> >>> >>> >> >>> >> >>> >> -- >>> >> Dmitry Gusev >>> >> >>> >> AnjLab Team >>> >> http://anjlab.com >>> >> >>> > >>> > >>> > >>> > -- >>> > Dmitry Gusev >>> > >>> > AnjLab Team >>> > http://anjlab.com >>> > >>> > >>> >>> -- >>> View this message in context: >>> http://old.nabble.com/GAE-and-Tapestry5-integration-tp26253952p26274666.html >>> Sent from the Tapestry - User mailing list archive at Nabble.com. >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >> >> >> -- >> Dmitry Gusev >> >> AnjLab Team >> http://anjlab.com >> >> > > -- View this message in context: http://old.nabble.com/GAE-and-Tapestry5-integration-tp26253952p26331358.html Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org