openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bengt Rodehav <be...@rodehav.com>
Subject Auditor and OSGi
Date Sun, 04 Sep 2011 20:29:45 GMT
Hello everyone,

After a long discussion about audit logging on this mailing list, Pinaki
developed an audit logging facility that he describes on:

http://openjpa.208410.n2.nabble.com/OpenJPA-Audit-Facility-tc6722915.html

It provides very interesting functionality and I've tried it in simple JUnit
scenarios using RESOURCE_LOCAL and it seems to work fine. However, my
production environment nowadays is OSGi using Karaf+Felix. I use Aries for
transaction support and also for it's JPA support. In that environment,
OpenJPA doesn't seem to be able to find my auditor implementation
(se.digia.maia.common.auditlog.impl.MaiaAuditor) that I specify in my
persistence.xml.

Has anyone else tried OpenJPA's new audit log facility? How can I make
OpenJPA find classes specified in the persistence.xml? I have double-checked
that the se.digia.maia.common.auditlog.impl is exported from my implementing
bundle.

I get the following exception:

*ERROR: Bundle org.apache.aries.jpa.container [21] EventDispatcher: Error
> during dispatch. (<openjpa-2.2.0-SNAPSHOT-runknown fatal user error>
> org.apache.openjpa.persistence.ArgumentException: Could not invoke the
> static newInstance method on the named factory class
> "org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory".)
> <openjpa-2.2.0-SNAPSHOT-runknown fatal user error>
> org.apache.openjpa.persistence.ArgumentException: Could not invoke the
> static newInstance method on the named factory class
> "org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory".
>  at
> org.apache.openjpa.kernel.Bootstrap.newBrokerFactory(Bootstrap.java:76)
> at
> org.apache.openjpa.persistence.PersistenceProviderImpl.getBrokerFactory(PersistenceProviderImpl.java:147)
>  at
> org.apache.openjpa.persistence.PersistenceProviderImpl.createContainerEntityManagerFactory(PersistenceProviderImpl.java:185)
> at
> org.apache.openjpa.persistence.PersistenceProviderImpl.createContainerEntityManagerFactory(PersistenceProviderImpl.java:62)
>  at
> org.apache.aries.jpa.container.impl.EntityManagerFactoryManager.createEntityManagerFactories(EntityManagerFactoryManager.java:263)
> at
> org.apache.aries.jpa.container.impl.EntityManagerFactoryManager.bundleStateChange(EntityManagerFactoryManager.java:153)
>  at
> org.apache.aries.jpa.container.impl.PersistenceBundleManager.modifiedBundle(PersistenceBundleManager.java:283)
> at
> org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:453)
>  at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:237)
> at
> org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:413)
>  at
> org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:807)
> at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:729)
>  at
> org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:610)
> at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3879)
>  at org.apache.felix.framework.Felix.access$800(Felix.java:79)
> at
> org.apache.felix.framework.Felix$StatefulResolver.fireResolvedEvents(Felix.java:4491)
>  at
> org.apache.felix.framework.Felix$StatefulResolver.resolve(Felix.java:4162)
> at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3557)
>  at org.apache.felix.framework.Felix.startBundle(Felix.java:1797)
> at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192)
>  at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: org.apache.openjpa.lib.util.ParseException: Instantiation of
> plugin "Auditor" with value "se.digia.maia.common.auditlog.impl.MaiaAuditor"
> caused an error "java.lang.IllegalArgumentException:
> java.lang.ClassNotFoundException:
> se.digia.maia.common.auditlog.impl.MaiaAuditor". The alias or class name may
> have been misspelled, or the class may not have be available in the class
> path. Valid aliases for this plugin are: [default]
>  at
> org.apache.openjpa.lib.conf.Configurations.getCreateException(Configurations.java:409)
> at
> org.apache.openjpa.lib.conf.Configurations.newInstance(Configurations.java:219)
>  at
> org.apache.openjpa.lib.conf.ObjectValue.newInstance(ObjectValue.java:124)
> at
> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
>  at
> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> at
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getAuditorInstance(OpenJPAConfigurationImpl.java:1822)
>  at
> org.apache.openjpa.kernel.AbstractBrokerFactory.postCreationCallback(AbstractBrokerFactory.java:854)
> at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.postCreationCallback(JDBCBrokerFactory.java:105)
>  at
> org.apache.openjpa.kernel.Bootstrap.newBrokerFactory(Bootstrap.java:67)
> ... 21 more
> Caused by: java.lang.IllegalArgumentException:
> java.lang.ClassNotFoundException:
> se.digia.maia.common.auditlog.impl.MaiaAuditor
>  at serp.util.Strings.toClass(Strings.java:164)
> at serp.util.Strings.toClass(Strings.java:108)
> at
> org.apache.openjpa.lib.conf.Configurations.newInstance(Configurations.java:211)
>  ... 28 more*


/Bengt

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