openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Dick" <michael.d.d...@gmail.com>
Subject Re: How do I use commandline PCEnhancer (OpenJPA 1.3) ?
Date Sun, 23 Nov 2008 15:18:56 GMT
Hi,

It looks like the enhancer can't find persistence.xml - it's expected to be
in a META-INF/ directory somewhere on your classpath. Have you tried adding
it to the classpath explicitly? The later errors look like we can't load a
given class file (presumably one that the entity depends on), have you tried
running with a persistence.xml and a jar with all your entities on the
classpath?

-mike


On Sat, Nov 22, 2008 at 11:58 PM, ruslan <ruslanv@gmail.com> wrote:

>
> Sorry guys, it's me again. I'm still converting my Hibernate project to
> OpenJPA so I will continue to entertain everybody in this mailing list.
>
> Could you please help me with commandline PCEnhancer ? I have a problem
> with
> one entity in my project. Everything is running under Tomcat. So my entity
> has bunch of primitive fields and one OneToMany relation. The problem is
> that after I change value of one primitive field, call of
> EntityManager.merge() causes UPDATE queries for ALL object from One-To-Many
> relation. It's kinda expensive and seems strange to me because I expected
> that proxy object will see what I changed and what I didn't.
>
> I thought maybe I should use PCEnhancer to fix it (or if somebody tells me
> how to pass -javaagent to Tomcat JVM I'bb be happy), unless it's bug.
>
> So far I haven't had a luck with PCEnhancer. I think I tried billion of
> combinations but none of them worked. Here are 2 examples how I run it. I
> tried this
>
>
> @java -classpath "C:\Program Files\apache-ant\lib\ant.jar;C:\Program
> Files\Apache\Tomcat
>
> 6.0\lib\javaee.jar;C:\WORK\apache-openjpa-1.3.0-SNAPSHOT\lib\commons-lang-2.1.jar;C:\WORK\apache-openjpa-1.3.0-SNAPSHOT\lib\serp-1.13.1.jar;C:\WORK\apache-openjpa-1.3.0-SNAPSHOT\openjpa-1.3.0-SNAPSHOT.jar"
> org.apache.openjpa.enhance.PCEnhancer
> C:\WORK\zefall\api2\src\zef\entities\UsersEntity.java
>
> It throws exception
>
> Exception in thread "main" <openjpa-1.3.0-SNAPSHOT-r422266:707655 fatal
> user
> error> org.apache.openjpa.util.MetaDataException: MetaDataFactory could not
> be configured (conf.newMetaDataFactoryInstance() returned null). This might
> mean that no configuration properties were found. Ensure that you have a
> META-INF/persistence.xml file, that it is available in your classpath, or
> that the properties file you are using for configuration is available. If
> you are using Ant, please see the <properties> or <propertiesFile>
> attributes of the task's nested <config> element. This can also occur if
> your OpenJPA distribution jars are corrupt, or if your security policy is
> overly strict.
>        at
>
> org.apache.openjpa.meta.MetaDataRepository.initializeMetaDataFactory(MetaDataRepository.java:1582)
>        at
>
> org.apache.openjpa.meta.MetaDataRepository.endConfiguration(MetaDataRepository.java:1573)
>        at
>
> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
>        at
>
> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
>        at
> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
>        at
>
> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
>        at
> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
>        at
>
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:866)
>        at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4458)
>        at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4440)
>        at org.apache.openjpa.enhance.PCEnhancer$1.run(PCEnhancer.java:4410)
>        at
>
> org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:708)
>        at
>
> org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:693)
>        at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4405)
>        at org.apache.openjpa.enhance.PCEnhancer.main(PCEnhancer.java:4396)
>
>
> I also tried this:
>
> 47  mysql  INFO   [main] openjpa.Tool - No targets were given.  Running on
> all classes in your persistent classes list, or all metadata files in
> classpath directories if you have not listed your persistent classes.  Use
> -help to display tool usage information.
> Exception in thread "main" java.lang.IllegalArgumentException:
> java.lang.ClassNotFoundException: zef.entities.SurveyGroupsEntity
>        at serp.util.Strings.toClass(Strings.java:164)
>        at serp.util.Strings.toClass(Strings.java:108)
>        at serp.bytecode.BCClass.getType(BCClass.java:566)
>        at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:249)
>        at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4493)
>        at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4440)
>        at org.apache.openjpa.enhance.PCEnhancer$1.run(PCEnhancer.java:4410)
>        at
>
> org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:708)
>        at
>
> org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:698)
>        at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4405)
>        at org.apache.openjpa.enhance.PCEnhancer.main(PCEnhancer.java:4396)
>
> It fails with message:
>
> 47  mysql  INFO   [main] openjpa.Tool - No targets were given.  Running on
> all classes in your persistent classes list, or all metadata files in
> classpath directories if you have not listed your persistent classes.  Use
> -help to display tool usage information.
> Exception in thread "main" java.lang.IllegalArgumentException:
> java.lang.ClassNotFoundException: zef.entities.SurveyGroupsEntity
>        at serp.util.Strings.toClass(Strings.java:164)
>        at serp.util.Strings.toClass(Strings.java:108)
>        at serp.bytecode.BCClass.getType(BCClass.java:566)
>        at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:249)
>        at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4493)
>        at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4440)
>        at org.apache.openjpa.enhance.PCEnhancer$1.run(PCEnhancer.java:4410)
>        at
>
> org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:708)
>        at
>
> org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:698)
>        at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4405)
>        at org.apache.openjpa.enhance.PCEnhancer.main(PCEnhancer.java:4396)
>
> What should I do ?
>
> Thanks!!
> --
> View this message in context:
> http://n2.nabble.com/How-do-I-use-commandline-PCEnhancer-%28OpenJPA-1.3%29---tp1567621p1567621.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message