I just spent a very long time tracking down something quite
similar. It turned out the DataNucleus enhancer was
silently failing when using the Eclipse plugin. Running
the enhancer outside Eclipse, I got the attached error
message. In my case, the enhancer was choking on my
class' use of log4j. So, your best bet would be to
take a look at the files in
/var/folders/IC/IC+dB9EIEMmt+1Vn3bGJLU+++TM/-Tmp-
to see if something similar is going on for you. (With
a path like that, it's certainly different on your
machine, but that should probably get you close enough).
ian-murdocks-macbook$ ant datanucleusenhance
Buildfile: /Users/imurdock/Eclipse/The 9th/build.xml
datanucleusenhance:
[enhance] DataNucleus Enhancer (version 1.1.4) : Enhancement of classes
[enhance] Encountered a problem: Unexpected exception
[enhance] Please see the logs
[/var/folders/IC/IC+dB9EIEMmt+1Vn3bGJLU+++TM/-Tmp-/enhance8504617589513481785.log]
for further information.
BUILD FAILED
/Users/imurdock/Eclipse/The 9th/build.xml:148: The following error
occurred while executing this line:
/Applications/Eclipse/plugins/com.google.appengine.eclipse.sdkbundle.1.3.7_1.3.7.v201008311427/appengine-java-sdk-1.3.7/config/user/ant-macros.xml:95:
Java returned: 1
Total time: 2 seconds
ian-murdocks-macbook$ more
/var/folders/IC/IC+dB9EIEMmt+1Vn3bGJLU+++TM/-Tmp-/enhance8504617589513481785.log
java.lang.RuntimeException: Unexpected exception
at
com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:59)
at com.google.appengine.tools.enhancer.Enhance.<init>(Enhance.java:60)
at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
Caused by: java.lang.reflect.InvocationTargetException
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.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:57)
... 2 more
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredFields(Class.java:1743)
at
org.datanucleus.metadata.annotations.AbstractAnnotationReader.getFieldAnnotationsForClass(AbstractAnnotationReader.java:289)
at
org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:143)
at
org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:136)
at
org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:2278)
at
org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:385)
at
org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:743)
at
org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:545)
at
org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1252)
... 7 more
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at
com.google.appengine.tools.enhancer.EnhancerLoader.loadClass(EnhancerLoader.java:85)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 18 more
-ian
On Fri, Sep 24, 2010 at 11:25 AM, karunakar mamidi
<[email protected]> wrote:
> i am trying to make a persistent class stored in the datastore...i got
> this exception..amnew to app engine ....ppls reply
>
>
>
> Uncaught exception from servlet
> org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:
> The class "The class "hare.krishna.LoginBean" is not persistable. This
> means that it either hasnt been enhanced, or that the enhanced version
> of the file is not in the CLASSPATH (or is hidden by an unenhanced
> version), or the Meta-Data/annotations for the class are not found."
> is not persistable. This means that it either hasnt been enhanced, or
> that the enhanced version of the file is not in the CLASSPATH (or is
> hidden by an unenhanced version), or the Meta-Data for the class is
> not found.
>
> --
> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>
--
Ian Murdock
http://ianmurdock.com/
"Don't look back--something might be gaining on you." --Satchel Paige
--
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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.