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>

Reply via email to