After 2 days finally I solved my problem. I had to add my classes path to the
pathelements (<pathelement location="${basedir}/build/classes"/>). Don't
know how I found it out. But I am really happy now. Here my new enhance.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project name="testJSF">
        
    <path id="jpa.enhancement.classpath">
        <pathelement location="build"/>
                 <pathelement location="${basedir}/build/classes"/>

        
        <fileset dir="lib">
            <include name="**/*.jar"/>
        </fileset>
    </path>


    <target name="enhance">
                
                <taskdef name="openjpac"
classname="org.apache.openjpa.ant.PCEnhancerTask">
                <classpath refid="jpa.enhancement.classpath"/>
                </taskdef>
    
                
                <openjpac>
                        <config propertiesFile="src/META-INF/persistence.xml" />
                <classpath refid="jpa.enhancement.classpath"/>
                        <fileset dir="build">
                                <include name="**/*.class" />
                        </fileset>
                </openjpac>
                <echo message="Enhancing complete."/>
        </target>       
</project>

After this change I get this Output:

enhance:
    [openjpac] 13  TODO  TRACE  [Worker-26] openjpa.Runtime - Setting the
following properties from
"file:/C:/Users/vibranca/tsystems/EclipseWorkspace/testJSF/src/META-INF/persistence.xml"
into configuration: {openjpa.ConnectionPassword=XXX,
openjpa.ConnectionDriverName=oracle.jdbc.driver.OracleDriver,
openjpa.MetaDataFactory=jpa(Types=openJPA.Todo_),
openjpa.Log=DefaultLevel=TRACE, PersistenceVersion=2.0,
openjpa.ConnectionUserName=XXX,
openjpa.ConnectionURL=jdbc:oracle:thin:@XXXXXXXX, openjpa.Id=TODO}
    [openjpac] 39  TODO  TRACE  [Worker-26] openjpa.Runtime - No cache
marshaller found for id org.apache.openjpa.conf.MetaDataCacheMaintenance.
    [openjpac] 426  TODO  TRACE  [Worker-26] openjpa.Runtime - No cache
marshaller found for id org.apache.openjpa.conf.MetaDataCacheMaintenance.
    [openjpac] 460  TODO  INFO   [Worker-26] openjpa.Tool - Enhancer running
on type "class openJPA.Todo_".
    [openjpac] 761  TODO  TRACE  [Worker-26] openjpa.MetaData - Loading
metadata for "class openJPA.Todo_" under mode "[META][QUERY]".
    [openjpac] 766  TODO  TRACE  [Worker-26] openjpa.MetaData - Scanning
resource "META-INF/orm.xml" for persistent types.
    [openjpac] 772  TODO  TRACE  [Worker-26] openjpa.MetaData - The
persistent unit root url is "null"
    [openjpac] 772  TODO  TRACE  [Worker-26] openjpa.MetaData -
parsePersistentTypeNames() found [openJPA.Todo_].
    [openjpac] 772  TODO  TRACE  [Worker-26] openjpa.MetaData - Found 1
classes with metadata in 7 milliseconds.
    [openjpac] 926  TODO  TRACE  [Worker-26] openjpa.MetaData - Parsing
class "openJPA.Todo_".
    [openjpac] 993  TODO  TRACE  [Worker-26] openjpa.MetaData - Generating
default metadata for type "openJPA.Todo_".
    [openjpac] 1003  TODO  TRACE  [Worker-26] openjpa.MetaData - Using
reflection for metadata generation.
    [openjpac] 1065  TODO  TRACE  [Worker-26] openjpa.MetaData - Set
persistence-capable superclass of "openJPA.Todo_" to "null".
    [openjpac] 1075  TODO  TRACE  [Worker-26] openjpa.MetaData - Resolving
metadata for "openJPA.Todo_@1081964".
    [openjpac] 1075  TODO  TRACE  [Worker-26] openjpa.MetaData -        
Resolving
field "openJPA.Todo_@1081964.description".
    [openjpac] 1127  TODO  TRACE  [Worker-26] openjpa.MetaData -        
Resolving
field "openjpa.to...@1081964.id".
    [openjpac] 1127  TODO  TRACE  [Worker-26] openjpa.MetaData -        
Resolving
field "openJPA.Todo_@1081964.priority".
    [openjpac] 1127  TODO  TRACE  [Worker-26] openjpa.MetaData -        
Resolving
field "openJPA.Todo_@1081964.title".
    [openjpac] 1128  TODO  TRACE  [Worker-26] openjpa.MetaData - Preparing
mapping for "openJPA.Todo_".
    [openjpac] 1128  TODO  TRACE  [Worker-26] openjpa.MetaData - Resolving
mapping for "openJPA.Todo_@1081964".
    [openjpac] 1128  TODO  TRACE  [Worker-26] openjpa.Enhance - Type "class
openJPA.Todo_" loaded by
org.apache.openjpa.lib.util.TemporaryClassLoader@1330108 is already
persistence capable; skipping.
    [openjpac] 1128  TODO  TRACE  [Worker-26] openjpa.Tool - The class is
already persistence capable - no enhancement performed.
    [openjpac] 1128  TODO  INFO   [Worker-26] openjpa.Tool - Enhancer
running on type "class beans.TodoBean".
    [openjpac] 1156  TODO  TRACE  [Worker-26] openjpa.MetaData - Loading
metadata for "class beans.TodoBean" under mode "[META][QUERY]".
    [openjpac] 1156  TODO  TRACE  [Worker-26] openjpa.MetaData - Parsing
class "beans.TodoBean".
    [openjpac] 1170  TODO  TRACE  [Worker-26] openjpa.Enhance - Enhancing
type "class beans.TodoBean" loaded by
org.apache.openjpa.lib.util.TemporaryClassLoader@1330108.
    [openjpac] 1252  TODO  INFO   [Worker-26] openjpa.Tool - No metadata was
found for 1 classes; they have been enhanced as persistence-aware. If you
intended for any of these classes to be persistence-capable, then this means
that OpenJPA could not find any metadata for those classes. This can happen
if the directory containing your metadata is not in your CLASSPATH, or if
your metadata files are not named properly. See the documentation on
metadata placement for more information. Persistence-aware classes: [class
beans.TodoBean]
    [openjpac] 1252  TODO  TRACE  [Worker-26] openjpa.MetaData - Clearing
metadata repository "org.apache.openjpa.meta.MetaDataRepository@257f04".
        [echo] Enhancing complete.
BUILD SUCCESSFUL
Total time: 2 seconds

Now my application works. But I don't understand why the Ant builder wants
to enhance my ManagedBean TodoBean class. As I mentioned before this class
is not annotated as Entity. It is a normal Managed Bean. Can I ignore this
Information:

[openjpac] 1128  TODO  INFO   [Worker-26] openjpa.Tool - Enhancer running on
type "class beans.TodoBean".
    [openjpac] 1156  TODO  TRACE  [Worker-26] openjpa.MetaData - Loading
metadata for "class beans.TodoBean" under mode "[META][QUERY]".
    [openjpac] 1156  TODO  TRACE  [Worker-26] openjpa.MetaData - Parsing
class "beans.TodoBean".
    [openjpac] 1170  TODO  TRACE  [Worker-26] openjpa.Enhance - Enhancing
type "class beans.TodoBean" loaded by
org.apache.openjpa.lib.util.TemporaryClassLoader@1330108.
    [openjpac] 1252  TODO  INFO   [Worker-26] openjpa.Tool - No metadata was
found for 1 classes; they have been enhanced as persistence-aware. If you
intended for any of these classes to be persistence-capable, then this means
that OpenJPA could not find any metadata for those classes. This can happen
if the directory containing your metadata is not in your CLASSPATH, or if
your metadata files are not named properly. See the documentation on
metadata placement for more information. Persistence-aware classes: [class
beans.TodoBean]

Some advice?
Thanks in advance!

--
View this message in context: 
http://openjpa.208410.n2.nabble.com/JPA-Enhancement-with-Eclipse-and-Ant-Class-not-found-Exception-tp7405353p7405805.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to