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 "[email protected]".
[openjpac] 1127 TODO TRACE [Worker-26] openjpa.MetaData -
Resolving
field "[email protected]".
[openjpac] 1127 TODO TRACE [Worker-26] openjpa.MetaData -
Resolving
field "[email protected]".
[openjpac] 1127 TODO TRACE [Worker-26] openjpa.MetaData -
Resolving
field "[email protected]".
[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.