Are you sure about the transaction type? I usually use JTA since Aries is supposed to take care of this.
regards, Achim 2013/2/1 lbu <[email protected]> > Hi all, > I've a little trouble to have JPA to work on Karaf 2.3.0 (JDK 1.7), I've > create a bundle that contains > - persistence unit > - blueprint descriptor > > I've installed the required features: > karaf@bt>features:list -i > State Version Name Repository Description > [installed ] [1.0.1 ] transaction karaf-enterprise-2.3.0 OSGi Transaction > Manager > [installed ] [1.0.1 ] jpa karaf-enterprise-2.3.0 OSGi Persistence > Container > [installed ] [1.0.0 ] jndi karaf-enterprise-2.3.0 OSGi Service > Registry JNDI access > [installed ] [1.0.0 ] bt bt-karaf-repo > [installed ] [2.3.0 ] config karaf-2.3.0 Provide OSGi > ConfigAdmin support > [installed ] [2.3.0 ] ssh karaf-2.3.0 Provide a SSHd > server on Karaf > [installed ] [2.3.0 ] management karaf-2.3.0 Provide a JMX > MBeanServer and a set of MBeans in Karaf > [installed ] [2.3.0 ] eventadmin karaf-2.3.0 OSGi Event Admin > service specification for event-based communication > > But when I deploy the bundle, it looks like Aries is not able to lookup the > persistence unit: > > 14:37:29,854|DEBUG|org.apache.aries.jpa.blueprint.aries > ==> Creating blueprint injection metadata to inject the unit BT-IO-FIX into > bean property entityManagerFactory > > 14:37:29,855|DEBUG|.apache.aries.blueprint.container.AbstractServiceReferenceRecipe > ==> Found initial references null for OSGi service > (&(&(!(org.apache.aries.jpa.proxy.factory=*))(osgi.unit.name > =BT-IO-FIX))(objectClass=javax.persistence.EntityManagerFactory)) > > 14:37:29,855|DEBUG|org.apache.aries.blueprint.container.BlueprintContainerImpl > ==> Tracking service references: [.component-1] > 14:37:29,855|INFO > |org.apache.aries.blueprint.container.BlueprintContainerImpl ==> > Bundle > bt.service.io.fix is waiting for dependencies > [(&(&(!(org.apache.aries.jpa.proxy.factory=*))(osgi.unit.name > =BT-IO-FIX))(objectClass=javax.persistence.EntityManagerFactory))] > > 14:37:29,856|DEBUG|org.apache.aries.blueprint.container.BlueprintEventDispatcher > ==> Sending blueprint container event BlueprintEvent[type=GRACE_PERIOD, > dependencies=[(&(&(!(org.apache.aries.jpa.proxy.factory=*))(osgi.unit.name > =BT-IO-FIX))(objectClass=javax.persistence.EntityManagerFactory))]] > for bundle bt.service.io.fix > 14:37:29,856|DEBUG|org.apache.karaf.shell.osgi.BlueprintListener > ==> Blueprint app state changed to GracePeriod for bundle 162 > > > Below META-INF:MANIFEST.MF (generated by gradle osgi): > Manifest-Version: 1.0 > Export-Package: bt.service.io.fix.factory;uses:="org.slf4j.spi,org.slf > 4j,quickfix,bt.core,javax.persistence",bt.service.io.fix;uses:="org.s > lf4j,quickfix,org.apache.commons.lang3,bt.core,bt.core.util,org.osgi. > framework,bt.core.session,bt.core.codec" > Private-Package: bt.service.io.fix.jpa.entity > Tool: Bnd-1.50.0 > Bundle-Name: BT :: Service :: IO :: FIX > Created-By: 1.7.0_11 (Oracle Corporation) > JPA-PersistenceUnits: BT-IO-FIX > Meta-Persistence: META-INF/persistence.xml > Bundle-Version: 1.0.0 > Bnd-LastModified: 1359704784000 > Bundle-ManifestVersion: 2 > Bundle-Description: BT :: Service :: IO :: FIX > Import-Package: bt.core,bt.core.codec,bt.core.session,bt.core.util,jav > ax.persistence;version="[1.1,2)",org.apache.commons.lang3;version="[3 > .1,4)",org.osgi.framework;version="[1.6,2)",org.slf4j;version="[1.7,2 > )",org.slf4j.spi;version="[1.7,2)",quickfix > Bundle-SymbolicName: bt.service.io.fix > > > below META-INF/persistence.xml: > <?xml version="1.0" encoding="UTF-8" ?> > <persistence > xsi:schemaLocation="http://java.sun.com/xml/ns/persistence > http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" > xmlns="http://java.sun.com/xml/ns/persistence" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > version="2.0"> > > <persistence-unit name="BT-IO-FIX" transaction-type="RESOURCE_LOCAL"> > > <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> > > <non-jta-data-source>osgi:service/javax.sql.DataSource/( > osgi.jndi.service.name=jdbc/BTDS)</non-jta-data-source> > <class>bt.service.io.fix.jpa.entity.FIXMessageEntity</class> > <class>bt.service.io.fix.jpa.entity.FIXSessionEntity</class> > <exclude-unlisted-classes>true</exclude-unlisted-classes> > <properties> > <property name="eclipselink.logging.level" > value="FINEST"/> > <property name="eclipselink.logging.level.sql" > value="FINE"/> > <property name="eclipselink.logging.parameters" > value="true"/> > <property name="eclipselink.logging.timestamp" > value="true"/> > <property name="eclipselink.logging.session" > value="true"/> > <property name="eclipselink.logging.thread" > value="true"/> > <property name="eclipselink.logging.exceptions" > value="true"/> > <property name="eclipselink.session.include.descriptor.queries" > value="true"/> > </properties> > </persistence-unit> > </persistence> > > > Here OSGI-INF/blueprint/blueprint.xml: > <bean > id = "bt-service-core-io-fix-message-store-factory" > class = "bt.service.io.fix.factory.FIXMessageStoreFactory" > scope = "singleton"> > <jpa:unit property="entityManagerFactory" unitname="BT-IO-FIX"/> > </bean> > > Do you see anything wrong in my setup? > > Regards, > Luca > > > > > -- > View this message in context: > http://karaf.922171.n3.nabble.com/Karaf-JPA-and-EclipseLink-tp4027571.html > Sent from the Karaf - User mailing list archive at Nabble.com. > -- Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project Lead blog <http://notizblog.nierbeck.de/>
