Hi Marthen,
I too faced similar problem.  That time my data objects were in a java
project while my jdo-config was in a web project( web project in-turn had
project reference to this java project).  The java project had app-engine
jar's in its class path, but still enhancement did not happen when the
project was build.

As a work around i moved my data classes to web project and then it worked.
 Dont know the reason for this though.  Perhaps could be an issue with
eclipse plugin only.

Thanks
Hari

2010/7/1 Marthen <marthen...@gmail.com>

> Hi guys,
>
> I have an simple application running on top of Spring using JPA for
> Google AppEngine (GAE).
>
> There's no compilation error, but when i load my application using
> Google AppEngine Development Server, i got runtime error saying that
> my Entity class is not enhanced!!
> Which kinda confusing me actually, because i deployed to another
> container (tomcat) and this Entity classes is running smoothly (of
> course i need to modify the persistence.xml accordingly)
>
> Here is my persistence.xml :
>
> <?xml version="1.0" encoding="UTF-8"?>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence";
> version="1.0">
> <persistence-unit name="myDB">
>
> <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>
>
>
>
> My Entity class :
>
> @Entity
> @Table(name = "audit_trail")
> public class AuditTrail implements java.io.Serializable {
> private static final long serialVersionUID = 1L;
> private Integer id;
>
> @Id
> @GeneratedValue(strategy = GenerationType.IDENTITY)
> @Column(name = "id", nullable = false)
> public Integer getId() {
> return id;
> }
>
> public void setId(Integer id) {
> this.id = id;
> }
>
> private String message;
>
> @Column(name = "message")
> public String getMessage() {
> return message;
> }
>
> public void setMessage(String msg) {
> this.message = msg;
> }
> }
>
>
>
> And this is the error code:
>
> 10-07-01 11:18:22 ERROR [] [main] MetaData - Found Meta-Data for class
> com.somecompany.demo.model.AuditTrail but this class is not enhanced!!
> Please enhance the class before running DataNucleus.
> org.datanucleus.exceptions.NucleusUserException: Found Meta-Data for
> class com.somecompany.demo.model.AuditTrail but this class is not
> enhanced!! Please enhance the class before running DataNucleus.
> at
>
> org.datanucleus.metadata.MetaDataManager.initialiseClassMetaData(MetaDataManager.java:
> 2225)
> at
>
> org.datanucleus.metadata.MetaDataManager.initialiseFileMetaData(MetaDataManager.java:
> 2176)
> at
>
> org.datanucleus.metadata.MetaDataManager.initialiseFileMetaDataForUse(MetaDataManager.java:
> 881)
> at
>
> org.datanucleus.metadata.MetaDataManager.loadPersistenceUnit(MetaDataManager.java:
> 794)
> at
>
> org.datanucleus.jpa.EntityManagerFactoryImpl.initialisePMF(EntityManagerFactoryImpl.java:
> 488)
> 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(Datastor
> ePersistenceProvider.java:35)
> at javax.persistence.Persistence.createFactory(Persistence.java:172)
> at
> javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:
> 112)
> at
>
> org.springframework.orm.jpa.LocalEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalEnti
> tyManagerFactoryBean.java:91)
> at
>
> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManage
> rFactoryBean.java:291)
> at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(Abstr
> actAutowireCapableBeanFactory.java:1369)
> at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(Abstract
> AutowireCapableBeanFactory.java:1335)
> at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAu
> towireCapableBeanFactory.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(AbstractAuto
> wireCapableBeanFactory.java:380)
> at org.springframework.beans.factory.support.AbstractBeanFactory
> $1.getObject(AbstractBeanFactory.java:264)
> at
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingleton
> BeanRegistry.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.orm.jpa.EntityManagerFactoryUtils.findEntityManagerFactory(EntityManagerFactoryU
> tils.java:99)
> at
>
> org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findNamedEntityManagerFac
> tory(PersistenceAnnotationBeanPostProcessor.java:488)
> at
>
> org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(
> PersistenceAnnotationBeanPostProcessor.java:470)
> at
> org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor
>
> $PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:
> 599)
> at
> org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor
>
> $PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:
> 570)
> at org.springframework.beans.factory.annotation.InjectionMetadata
> $InjectedElement.inject(InjectionMetadata.java:192)
> at
>
> org.springframework.beans.factory.annotation.InjectionMetadata.injectMethods(InjectionMetadata.java:
> 117)
> at
>
> org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues
> (PersistenceAnnotationBeanPostProcessor.java:321)
> at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAu
> towireCapableBeanFactory.java:998)
> at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAu
> towireCapableBeanFactory.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(AbstractAuto
> wireCapableBeanFactory.java:380)
> at org.springframework.beans.factory.support.AbstractBeanFactory
> $1.getObject(AbstractBeanFactory.java:264)
> at
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingleton
> BeanRegistry.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(BeanDefinitio
> nValueResolver.java:269)
> at
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDe
> finitionValueResolver.java:104)
> at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(Abs
> tractAutowireCapableBeanFactory.java:1245)
> at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAu
> towireCapableBeanFactory.java:1010)
> at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAu
> towireCapableBeanFactory.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(AbstractAuto
> wireCapableBeanFactory.java:380)
> at org.springframework.beans.factory.support.AbstractBeanFactory
> $1.getObject(AbstractBeanFactory.java:264)
> at
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingleton
> BeanRegistry.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(Defaul
> tListableBeanFactory.java:429)
> at
>
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(Abstr
> actApplicationContext.java:728)
> at
>
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.ja
> va:380)
> at
>
> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:
> 255)
> at
>
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:
> 199)
> at
>
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:
> 45)
> at
> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:
> 548)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
> at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
> 1250)
> at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
> 517)
> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:
> 467)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
> 50)
> at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
> 130)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
> 50)
> at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:
> 130)
> at org.mortbay.jetty.Server.doStart(Server.java:224)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
> 50)
> at
>
> com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.ja
> va:185)
> at
>
> com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.jav
> a:146)
> at
>
> com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:
> 222)
> at com.google.appengine.tools.development.DevAppServerMain
> $StartAction.apply(DevAppServerMain.java:171)
> at com.google.appengine.tools.util.Parser
> $ParseResult.applyArgs(Parser.java:48)
> at
>
> com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:
> 120)
> at
>
> com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:
> 96)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>
>
> I am using Spring 2.5.6, Google SDK 1.3.4, JDK 1.6
>
> Appreciate your help.
>
> Thanks,
> Marthen
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to