You did install/start the aries transaction manager bundle? david jencks
On Jul 24, 2012, at 3:52 PM, Jason wrote: > Hi all, > > I have been running into an exception lately and can't seem to remedy the > problem. I am getting a "javax.persistence.TransactionRequiredException: No > transaction currently active" exception. I am using Karaf v2.2.8, ActiveMQ > 5.6.0, OpenJPA 2.1.1, and CXF 2.6.1. I followed the Apache Aries sample blog > application, so there is a datasource registered via blueprint...looks like > this: > > <?xml version="1.0" encoding="UTF-8"?> > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" > xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > default-activation="lazy"> > > <cm:property-placeholder persistent-id="edu.unc.mapseq.ds"> > > <cm:default-properties> > > ....snip.... > > </cm:default-properties> > > </cm:property-placeholder> > > <bean id="mapseq-ds-jta" class="org.postgresql.xa.PGXADataSource"> > > <property name="user" value="${username}" /> > > <property name="password" value="${password}" /> > > <property name="serverName" value="${serverName}" /> > > <property name="databaseName" value="${databaseName}" /> > > <property name="portNumber" value="${port}" /> > > </bean> > > <service id="mapseqXADataSource" ref="mapseq-ds-jta" > interface="javax.sql.XADataSource"> > > <service-properties> > > <entry key="osgi.jndi.service.name" value="jdbc/mapseqJTA" /> > > </service-properties> > > </service> > > <bean id="mapseq-ds-no-jta" class="org.postgresql.ds.PGPoolingDataSource"> > > <property name="user" value="${username}" /> > > <property name="password" value="${password}" /> > > <property name="serverName" value="${serverName}" /> > > <property name="databaseName" value="${databaseName}" /> > > <property name="portNumber" value="${port}" /> > > <property name="initialConnections" value="${maxIdle}" /> > > <property name="maxConnections" value="${maxActive}" /> > > </bean> > > <service id="mapseqDataSource" ref="mapseq-ds-no-jta" > interface="javax.sql.DataSource"> > > <service-properties> > > <entry key="osgi.jndi.service.name" value="jdbc/mapseqNoJTA" /> > > </service-properties> > > </service> > > </blueprint> > > > Here is the persistence.xml: > > <persistence 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" > > version="1.0"> > > <persistence-unit name="mapseq" transaction-type="JTA"> > > <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> > > > <jta-data-source>aries:services/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/mapseqJTA)</jta-data-source> > > > <non-jta-data-source>aries:services/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/mapseqNoJTA)</non-jta-data-source> > > ...snip... > > <exclude-unlisted-classes>true</exclude-unlisted-classes> > > <properties> > > <!-- <property name="openjpa.jdbc.SynchronizeMappings" > value="buildSchema(ForeignKeys=true)" /> --> > > <!-- <property name="openjpa.Log" value="DefaultLevel=TRACE, > Runtime=TRACE, Tool=TRACE, SQL=TRACE" /> --> > > <property name="openjpa.jdbc.MappingDefaults" > value="ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict" > /> > > <property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, > Tool=INFO, SQL=WARN" /> > > <property name="openjpa.jdbc.DBDictionary" > value="postgres(SearchStringEscape=\, SupportsXMLColumn=false)" /> > > <property name="openjpa.DataCache" value="false" /> > > <property name="openjpa.QueryCache" value="false" /> > > </properties> > > </persistence-unit> > > </persistence> > > > And finally, the blueprint.xml file to register JPA DAO services: > > <?xml version="1.0" encoding="UTF-8"?> > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0" > xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0" > > default-activation="lazy"> > > <bean id="accessControlDAOImpl" > class="edu.unc.mapseq.dao.jpa.AccessControlDAOImpl" init-method="init"> > > <tx:transaction method="*" value="Required" /> > > <jpa:context property="entityManager" unitname="mapseq" /> > > </bean> > > <service ref="accessControlDAOImpl" > interface="edu.unc.mapseq.dao.AccessControlDAO" /> > ...snip... > > </blueprint> > > > Here is part of the stacktrace: > > Caused by: javax.persistence.TransactionRequiredException: No transaction > currently active > > at > org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext(JTAPersistenceContextRegistry.java:103) > > at > org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext(JTAEntityManager.java:83) > > at > org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist(JTAEntityManager.java:278) > > at edu.unc.mapseq.dao.jpa.BaseDAOImpl.save(BaseDAOImpl.java:36) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_24] > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.6.0_24] > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.6.0_24] > > at java.lang.reflect.Method.invoke(Method.java:616)[:1.6.0_24] > > at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50) > > at > org.apache.aries.proxy.impl.DefaultWrapper.invoke(DefaultWrapper.java:31) > > at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78) > > at $Proxy112.save(Unknown Source) > > at > edu.unc.mapseq.ws.impl.HTSFSampleServiceImpl.save(HTSFSampleServiceImpl.java:45)[234:mapseq-web-service-htsf-sample:0.0.1.SNAPSHOT] > > > The exception occurs whenever I try to do anything that is transaction > related (like persisting an entity). I have set the logging in Karaf to > DEBUG and I can't seem to find anything out of the ordinary. Anyone seen > this before??? Suggested solutions? Suggestions for debugging further? > > > Regards, > Jason >
