Well, I'm mystified. All the problems I knew about were from using java7 with relatively early aries bundles. I've never heard of switching to java 7 solving anything.
I'm glad it's working though.... david jencks On Jul 25, 2012, at 1:10 PM, Jason wrote: > David, > > First off, thank you....I am embarrassed to admit that I have been banging my > head against this for two days now. > > Upgrading to Java 7 did the trick. > > Regards, > Jason > > On 07/25/2012 12:41 PM, Jason wrote: >> David, >> >> I am not on Java 7, but I would be willing to give it a whirl. >> >> $ java -fullversion >> >> java full version "1.6.0_24-b24" >> >> >> I am using the aries proxy that ships out-of-the-box...from the Karaf >> startup.properties file: >> >> org/apache/aries/proxy/org.apache.aries.proxy/0.3/org.apache.aries.proxy-0.3.jar=20 >> >> >> >> Regards, >> Jason >> >> On 07/25/2012 12:34 PM, David Jencks wrote: >>> Are you on java 7? I haven't followed this saga very closely but there >>> were some aries proxy changes needed for java 7.... which aries proxy >>> bundle do you have? >>> >>> david jencks >>> >>> On Jul 25, 2012, at 12:23 PM, Jason wrote: >>> >>>> Hi all, >>>> >>>> Just an update... >>>> >>>> I just downloaded a fresh version of Karaf-2.2.8, did a checkout of >>>> https://github.com/cschneider/Karaf-Tutorial, changed the >>>> db/examplejpa/src/main/resources/OSGI-INF/blueprint/blueprint.xml file to >>>> have a 'default-activation="lazy"', then followed the bundle install >>>> instructions in the readme.txt and this is the result: >>>> >>>> karaf@root> person:add 'Christian Schneider' @schneider_chris >>>> >>>> Error executing command: No transaction currently active >>>> >>>> >>>> If I leave the 'default-activation="eager"', there is a java.lang.Verify >>>> exception thrown: >>>> >>>> Caused by: java.lang.VerifyError: (class: >>>> net/lr/tutorial/karaf/db/examplejpa/impl/$PersonServiceImpl723600344, >>>> method: <init> signature: (Ljava/lang/reflect/InvocationHandler;)V) Call >>>> to wrong initialization method >>>> >>>> at java.lang.Class.getDeclaredConstructors0(Native Method)[:1.6.0_24] >>>> >>>> at >>>> java.lang.Class.privateGetDeclaredConstructors(Class.java:2406)[:1.6.0_24] >>>> >>>> at java.lang.Class.getConstructor0(Class.java:2716)[:1.6.0_24] >>>> >>>> at java.lang.Class.getConstructor(Class.java:1674)[:1.6.0_24] >>>> >>>> at >>>> org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.newProxySubclassInstance(ProxySubclassGenerator.java:159) >>>> >>>> at >>>> org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:81) >>>> >>>> >>>> At the very least, this tells me that I am not doing anything wrong from >>>> within my codebase. Yet, I am still hung up on this issue. Suggestions? >>>> >>>> Regards, >>>> Jason >>>> >>>> On 07/24/2012 09:14 PM, Jason Reilly wrote: >>>>> David, >>>>> >>>>> Yes....I deploy via a custom distribution, so all packages are set to >>>>> start on start-up. And I restarted the aries transaction bundle from >>>>> the interactive console. >>>>> >>>>> Regards, >>>>> Jason >>>>> >>>>> >>>>> On 07/24/2012 08:39 PM, David Jencks wrote: >>>>>> 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 >>>>>>> >> >
