> -----Original Message----- > From: Pinaki Poddar [mailto:[email protected]] > Sent: Wednesday, December 09, 2009 7:35 PM > To: [email protected] > Subject: Re: Message about "ProductDerivations", error with > ClassTransformer, and turning up log output > > > > First is the "ProductDerivations" thing. > > I don't know for sure what that's telling me, or how I should > proceed. > > ProductDerivations is the thing that makes OpenJPA ultra-configurable. > Each > ProductDerivation during bootstrap contributes their own configuration > (in > defined order) to customize a OpenJPA runtime -- for example, whether > you > want to use OpenJPA with a JDBC-aware database or a LDAP directory or a > Object-oriented Database, or whether you want OpenJPA to process XML > data as > first class objects or operate with a set of distributed databases. > ProductDerivations (please note the 's' at the end) is the utility that > detects all the ProductDerivation available (visible) at bootstrap. > As you are seeing ProductDerivations error message, the possible > diagnostic > action is to run org.apache.openjpa.lib.conf.ProductDerivations (which > has a > main() method) with the classpath that you think is the same as when > the > application is being invoked. That main() method will print out the > list of > ProductDerivation instances the classloader can load' (via service > discovery > mechanism) and the ones that can not be initialized.
Ok, I'll give that a try and see what I get. > Secondly, this ClassTransformer thing. The easiest way is to make such > things redundant is build-time enhancement [1]. Simply put, after > compilation of the persistent entity classes, run a > ...openjpa.enhance.PCEnhancer which will 'enhance' the bytecode of the > persistent entity classes such that any persistent field access or > mutation > is intercepted by OpenJPA to do the right thing. This simple step will > not > only obviate many deployment time concerns such as ClassTransformer via > -javaagent or subclassing or redefinition, but also offer better > runtime > performance. I may consider doing that for the real build, but I'm just running this in Eclipse. It's not really practical to set up compile-time enhancement in that environment. I'll need to make sure I'm doing proper load-time enhancement at this point. As I'm running JDK 1.5, I believe I have to use the javaagent? If I was using JDK 1.6, I seem to remember it can do it at load time without the javaagent? In any case, this is somewhat beside the point. The message indicates that I can get more info about what's going wrong if I turn up logging. I believe I did that, but it appeared to have no effect. > [1] > http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_gui > de_pc_enhance_build > > KARR, DAVID (ATTCINW) wrote: > > > > I'm assembling an app using JPA and CXF on WebLogic 10MP1. > > > > After getting through several classloading issues, I'm seeing the > > following in the server log at startup: > > > > ------------ > > Some product derivations are being skipped. For information about > > product derivation status, run: > > java org.apache.openjpa.lib.conf.ProductDerivations > > 16 dynamicContent WARN [[ACTIVE] ExecuteThread: '0' for queue: > > 'weblogic.kernel.Default (self-tuning)'] openjpa.Runtime - An error > > occurred while registering a ClassTransformer with > PersistenceUnitInfo: > > name 'dynamicContent', root URL [file:/C:/Documents and > > Settings/dk068x/workspace3/DynamicContent/bin/]. The error has been > > consumed. To see it, set your openjpa.Runtime log level to TRACE. > > Load-time class transformation will not be available. > > ------------ > > > > There are a few issues here. First is the "ProductDerivations" > thing. > > I don't know for sure what that's telling me, or how I should > proceed. > > It appears to be suggesting a Java command line to run, which seems > odd. > > > > Second is this ClassTransformer error that it's not showing me the > > detail for. I currently have the following in my persistence.xml > file > > (with a couple elisions): > > > > ---------- > > <?xml version="1.0" encoding="UTF-8"?> > > <persistence version="1.0" > > xmlns="http://java.sun.com/xml/ns/persistence" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > > xsi:schemaLocation="http://java.sun.com/xml/ns/persistence > > > > > > http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> > > <persistence-unit name="MyPersistenceUnitName" > > transaction-type="JTA"> > > > > > <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provi > d > > er> > > <mapping-file>---path to orm.xml file---</mapping-file> > > <properties> > > <property name="openjpa.Log" value="DefaultLevel=TRACE"/> > > </properties> > > </persistence-unit> > > </persistence> > > ---------- > > > > As far as I can tell, that property setting should turn up the log > > pretty high. This change had no effect that I could see. > > > > > > > ----- > Pinaki > -- > View this message in context: http://n2.nabble.com/Message-about- > ProductDerivations-error-with-ClassTransformer-and-turning-up-log- > output-tp4143105p4143527.html > Sent from the OpenJPA Users mailing list archive at Nabble.com.
