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

Reply via email to