Do not use 1.4.0-SNAPSHOT of the blueprint-maven-plugin. Instead switch to 1.3.0 which is the current release.
You should not use the blueprint-maven-plugin for the persistence module. It only works with the annotation approach. Instead create a normal blueprint xml with the old namespace for jta and jpa. xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.2.0"xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0" Christian 2015-12-22 12:43 GMT+01:00 jochenw <[email protected]>: > Hi, > > sorry, haven't found the time earlier to dig into this. First: the problem > persists with Karaf 4.0.3 > > Now I downloaded the tasklist-blueprint-cdi example, built it (had to > exchange the version of the blueprint-maven-plugin from 1.3.0-SNAPSHOT to > 1.4.0-SNAPSHOT, since 1.3.0-SNAPSHOT was no longer found in the snapshot > repo), downloaded a fresh copy of Karaf 4.0.3, added the example repo and > installed the features as described in the tutorial link. Result: > tasklist-persistence and tasklist-service stay in Grace Period. Log > entries: > > 2015-12-22 11:51:39,026 | INFO | rint Extender: 2 | BlueprintContainerImpl > | 13 - org.apache.aries.blueprint.core - 1.4.5 | Bundle > net.lr.tasklist.cdi.tasklist-persistence/1.0.0.SNAPSHOT is waiting for > namespace handlers [http://aries.apache.org/xmlns/transactions/v2.0.0] > 2015-12-22 11:51:39,057 | INFO | es.transaction]) | TransactionManager > | 140 - org.ops4j.pax.jdbc.pool.common - 0.7.0 | TransactionManager service > detected. Providing support for XA DataSourceFactories > 2015-12-22 11:51:39,073 | INFO | rint Extender: 2 | BlueprintContainerImpl > | 13 - org.apache.aries.blueprint.core - 1.4.5 | Bundle > net.lr.tasklist.cdi.tasklist-persistence/1.0.0.SNAPSHOT is waiting for > dependencies > [(&(osgi.unit.name > =tasklist)(objectClass=javax.persistence.EntityManager))] > > Both go to Failure after the grace period. > > > Second step: I added all the Karaf features I typically use for my > application to the boot features: > > featuresBoot = \ > aries-blueprint, \ > bundle, \ > config, \ > deployer, \ > diagnostic, \ > eclipselink, \ > feature, \ > instance, \ > jaas, \ > jdbc, \ > jndi, \ > jpa/1.0.4, \ > log, \ > management, \ > package, \ > pax-jdbc-config, \ > pax-jdbc-pool-dbcp2, \ > pax-jdbc-postgresql, \ > service, \ > shell, \ > shell-compat, \ > ssh, \ > system, \ > transaction, \ > war, \ > wrap > > Please note that I'm explicitly using jpa 1.0.4, since we don't want to > switch yet to the annotation based approach for defining persistence units. > > Again, I installed the example. It adds some additional features (jpa > 2.2.0, > cxf 3.1.3, pax-jdbc-h2). And now, the behavior is the same as for my > application: > > 2015-12-22 12:15:55,775 | WARN | pool-58-thread-1 | JpaInterceptor > | 140 - org.apache.aries.jpa.blueprint - 2.2.0 | Exception from > EmSupplier.preCall > java.lang.reflect.UndeclaredThrowableException > at com.sun.proxy.$Proxy33.createEntityManager(Unknown > Source)[42:org.apache.aries.jpa.container:1.0.2] > at > > org.apache.aries.jpa.support.impl.EMSupplierImpl.createEm(EMSupplierImpl.java:70)[142:org.apache.aries.jpa.support:2.2.0] > at > > org.apache.aries.jpa.support.impl.EMSupplierImpl.get(EMSupplierImpl.java:88)[142:org.apache.aries.jpa.support:2.2.0] > at > > org.apache.aries.jpa.support.osgi.impl.EmProxy.invoke(EmProxy.java:38)[142:org.apache.aries.jpa.support:2.2.0] > at com.sun.proxy.$Proxy34.getProperties(Unknown > Source)[21:javax.persistence:2.1.0.v201304241213] > at Proxy528b3354_7ae9_43a3_a513_dd34f85f48fa.getProperties(Unknown > Source)[:] > at > > org.apache.aries.jpa.blueprint.impl.JpaInterceptor.isResourceLocalInternal(JpaInterceptor.java:105)[140:org.apache.aries.jpa.blueprint:2.2.0] > at > > org.apache.aries.jpa.blueprint.impl.JpaInterceptor.isResourceLocal(JpaInterceptor.java:95)[140:org.apache.aries.jpa.blueprint:2.2.0] > at > > org.apache.aries.jpa.blueprint.impl.JpaInterceptor.preCall(JpaInterceptor.java:60)[140:org.apache.aries.jpa.blueprint:2.2.0] > at > > org.apache.aries.blueprint.proxy.Collaborator.preInvoke(Collaborator.java:76)[28:org.apache.aries.blueprint.core:1.4.5] > at Proxybe54e4c7_6e38_4537_9609_fceefdbc3489.getTask(Unknown > Source)[:] > at > > net.lr.tasklist.persistence.impl.InitHelper$1.run(InitHelper.java:27)[137:net.lr.tasklist.cdi.tasklist-persistence:1.0.0.SNAPSHOT] > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_40] > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_40] > at java.lang.Thread.run(Thread.java:745)[:1.8.0_40] > Caused by: java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method)[:1.8.0_40] > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_40] > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_40] > at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_40] > at > > org.apache.aries.jpa.container.impl.QuiesceEMFHandler.invoke(QuiesceEMFHandler.java:57)[42:org.apache.aries.jpa.container:1.0.2] > ... 15 more > Caused by: javax.persistence.PersistenceException: Exception > [EclipseLink-28019] (Eclipse Persistence Services - > 2.6.0.v20150309-bf26070): > org.eclipse.persistence.exceptions.EntityManagerSetupException > Exception Description: Deployment of PersistenceUnit [tasklist] failed. > Close all factories for this PersistenceUnit. > Internal Exception: java.lang.NoClassDefFoundError: > org/eclipse/persistence/internal/jpa/rs/metadata/model/Link > at > > org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createDeployFailedPersistenceException(EntityManagerSetupImpl.java:866) > at > > org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:806) > at > > org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:205) > at > > org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:305) > at > > org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:337) > at > > org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:303) > ... 20 more > Caused by: Exception [EclipseLink-28019] (Eclipse Persistence Services - > 2.6.0.v20150309-bf26070): > org.eclipse.persistence.exceptions.EntityManagerSetupException > Exception Description: Deployment of PersistenceUnit [tasklist] failed. > Close all factories for this PersistenceUnit. > Internal Exception: java.lang.NoClassDefFoundError: > org/eclipse/persistence/internal/jpa/rs/metadata/model/Link > at > > org.eclipse.persistence.exceptions.EntityManagerSetupException.deployFailed(EntityManagerSetupException.java:239) > ... 26 more > Caused by: java.lang.NoClassDefFoundError: > org/eclipse/persistence/internal/jpa/rs/metadata/model/Link > at java.lang.Class.getDeclaredMethods0(Native Method)[:1.8.0_40] > at > java.lang.Class.privateGetDeclaredMethods(Class.java:2701)[:1.8.0_40] > at java.lang.Class.getDeclaredMethods(Class.java:1975)[:1.8.0_40] > at > > org.eclipse.persistence.internal.security.PrivilegedAccessHelper.getDeclaredMethods(PrivilegedAccessHelper.java:339) > at > > org.eclipse.persistence.internal.jpa.metadata.listeners.EntityListenerMetadata.getDeclaredMethods(EntityListenerMetadata.java:249) > at > > org.eclipse.persistence.internal.jpa.metadata.listeners.EntityClassListenerMetadata.process(EntityClassListenerMetadata.java:89) > at > > org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.processListeners(EntityAccessor.java:1226) > at > > org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.addEntityListeners(MetadataProcessor.java:140) > at > > org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:634) > ... 24 more > Caused by: java.lang.ClassNotFoundException: > org.eclipse.persistence.internal.jpa.rs.metadata.model.Link not found by > net.lr.tasklist.cdi.tasklist-model [136] > at > > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574) > at > > org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) > at > > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_40] > ... 33 more > > > So most probably I have to exactly check which bundles changes versions > from 4.0.1 to 4.0.2/3. Most probably something related to JPA 1.0.4. > > Best Regards, > > Jochen > > > > -- > View this message in context: > http://karaf.922171.n3.nabble.com/Karaf-4-0-2-Problem-Eclipselink-2-6-0-with-JPA-2-2-0-tp4043068p4044425.html > Sent from the Karaf - User mailing list archive at Nabble.com. > -- -- Christian Schneider http://www.liquid-reality.de <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.liquid-reality.de> Open Source Architect http://www.talend.com <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.talend.com>
