@Uday: you need to install spring in tomee/tomcat ie add spring-instrument and spring-instrument-tomcat in the container and define the tomcat instrumentable classloader in context.xml otherwise spring is not able to setup JPA properly (no comment).
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber <http://www.tomitribe.com> 2015-07-28 1:00 GMT-07:00 Uday Gire <[email protected]>: > Hi > > I tried to deploy your application but it fails. (Even putting Loader > className=“….” in context.xml) > > It throws the following exception: > > Caused by: java.lang.IllegalStateException: ClassLoader > [org.apache.tomee.catalina.LazyStopWebappClassLoader] does NOT provide an > 'addTransformer(ClassFileTransformer)' method. > at > org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver.<init>(ReflectiveLoadTimeWeaver.java:104) > at > org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver.<init>(ReflectiveLoadTimeWeaver.java:86) > at > com.github.firelore.config.DataConfig.loadTimeWeaver(DataConfig.java:52) > > TomEE uses org.apache.tomee.catalina.LazyStopWebappClassLoader even if you > configure other loaders. > > If you did deploy successfully, what is your configuration? > > Thanks > > Uday Gire > ManageCat Support > [email protected] > > > > On 27 Jul 2015, at 22:13, Mike Spencer <[email protected]> wrote: > > > > I put a sample project on my github page at > https://github.com/firelore/transaction-test > > > > The DataSource definition is in the README.md. For the purposes of the > sample project, there is nothing else in the tomee.xml besides the xml > declaration and the <tomee> tags. The context.xml was modified to include > > <Loader > loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/> > as per Spring instructions. > > > > Thanks, > > Mike Spencer > > > > On 07/24/2015 11:59 AM, Romain Manni-Bucau wrote: > >> just wanted to ensure figures were moving to validate it was the same > >> instance. > >> > >> Isnt your issue just the rollback which happens and then the tx is > missing? > >> > >> if you can reproduce it on a github project it would be easier to > >> investigate. > >> > >> > >> Romain Manni-Bucau > >> @rmannibucau <https://twitter.com/rmannibucau> | Blog > >> <http://rmannibucau.wordpress.com> | Github < > https://github.com/rmannibucau> | > >> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber > >> <http://www.tomitribe.com> > >> > >> 2015-07-24 9:54 GMT-07:00 Mike Spencer <[email protected]>: > >> > >>> Hi Romain, > >>> > >>> JMX (under openejb.management.TransactionManager) is showing commits > and > >>> rollbacks, increasing as I use the application. If this is not the > correct > >>> instance, what else could it be? > >>> > >>> > >>> On 07/24/2015 09:21 AM, Romain Manni-Bucau wrote: > >>> > >>>> Yes it is the correct type but wonder if it is the correct instance. > >>>> > >>>> In JMX you have nulber of tx and commits, maybe check it as well. > >>>> Le 24 juil. 2015 15:46, "Andy Gumbrecht" <[email protected]> > a > >>>> écrit : > >>>> > >>>> Hi Mike, > >>>>> Either add @Stateless to your bean that accesses the db and let TomEE > >>>>> manage the transaction, or @Inject UserTransaction trans into your > bean > >>>>> and > >>>>> call trans.begin() and trans.commit() > >>>>> > >>>>> Andy. > >>>>> > >>>>> On 24 July 2015 at 15:05, Mike Spencer <[email protected]> > wrote: > >>>>> > >>>>> Hi Romain, > >>>>>> I am using Spring's JtaTransactionManager and it is finding a > >>>>>> org.apache.geronimo.transaction.manager.GeronimoTransactionManager > at > >>>>>> the > >>>>>> JNDI location java:comp/UserTransaction. Is this the correct > transaction > >>>>>> manager to be using? > >>>>>> > >>>>>> Thanks, > >>>>>> Mike Spencer > >>>>>> > >>>>>> On 07/23/2015 04:11 PM, Romain Manni-Bucau wrote: > >>>>>> > >>>>>> Hi > >>>>>>> isnt it only that spring is not able to lookup tomee tx magaer by > >>>>>>> > >>>>>> default? > >>>>>> try to wire it in your app ctx. > >>>>>>> > >>>>>>> > >>>>>>> > >>>>> > http://grepcode.com/file/repo1.maven.org/maven2/org.apache.openejb/openejb-core/4.7.1/org/apache/openejb/OpenEJB.java#OpenEJB.getTransactionManager%28%29 > >>>>> > >>>>>> is the one (doable using methid invoker of spring IIRC) > >>>>>>> > >>>>>>> Romain Manni-Bucau > >>>>>>> @rmannibucau <https://twitter.com/rmannibucau> | Blog > >>>>>>> <http://rmannibucau.wordpress.com> | Github < > >>>>>>> https://github.com/rmannibucau> | > >>>>>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber > >>>>>>> <http://www.tomitribe.com> > >>>>>>> > >>>>>>> > >>>>>>> 2015-07-23 14:04 GMT-07:00 Mike Spencer <[email protected]>: > >>>>>>> > >>>>>>> Hi all, > >>>>>>> > >>>>>>>> I am having issues with using database transactions in a Spring > based > >>>>>>>> application. I have my data sources configured on TomEE and they > work > >>>>>>>> fine > >>>>>>>> for non-transactional database calls, but whenever I try to call a > >>>>>>>> > >>>>>>> method > >>>>>> using Spring's @Transactional annotation a > TransactionRequiredException > >>>>>>>> is > >>>>>>>> thrown due to no active transactions. I have this application > working > >>>>>>>> > >>>>>>> on > >>>>>> Glassfish currently and am trying to port it to TomEE. > >>>>>>>> The application is using JPA (through EclipseLink), Spring, and > Spring > >>>>>>>> Data JPA to handle the database calls. I have a > >>>>>>>> org.springframework.transaction.jta.JtaTransactionManager > configured > >>>>>>>> > >>>>>>> and > >>>>>> it > >>>>>>>> appears to be grabbing a > >>>>>>>> org.apache.geronimo.transaction.manager.GeronimoTransactionManager > >>>>>>>> from > >>>>>>>> TomEE under a default JNDI name. I am not explicitly creating or > >>>>>>>> configuring a TransactionManager in TomEE. > >>>>>>>> > >>>>>>>> As far as I can tell, everything is working up to a point of > trying to > >>>>>>>> the > >>>>>>>> point of committing a transaction. I enabled debug logging and I > get > >>>>>>>> > >>>>>>> this > >>>>>> in my logs: > >>>>>>>> 2015-07-23 14:50:07,510 DEBUG > >>>>>>>> [AbstractPlatformTransactionManager.java:367] - Creating new > >>>>>>>> > >>>>>>> transaction > >>>>>> with name > >>>>>>>> > >>>>>>>> > >>>>> > [org.springframework.data.jpa.repository.support.SimpleJpaRepository.saveAndFlush]: > >>>>> > >>>>>> PROPAGATION_REQUIRED,ISOLATION_DEFAULT; '' > >>>>>>>> 2015-07-23 14:50:07,511 DEBUG > >>>>>>>> [AbstractPlatformTransactionManager.java:847] - Initiating > transaction > >>>>>>>> rollback > >>>>>>>> Jul 23, 2015 2:50:07 PM > org.apache.catalina.core.ApplicationDispatcher > >>>>>>>> invoke > >>>>>>>> SEVERE: Servlet.service() for servlet dispatcher threw exception > >>>>>>>> org.springframework.dao.InvalidDataAccessApiUsageException: > >>>>>>>> Exception Description: No transaction is currently active; nested > >>>>>>>> exception is javax.persistence.TransactionRequiredException: > >>>>>>>> Exception Description: No transaction is currently active > >>>>>>>> > >>>>>>>> > >>>>>>>> I do not know if I missed a configuration option in TomEE or not, > but > >>>>>>>> I > >>>>>>>> could use some help trying to find what I am missing. > >>>>>>>> > >>>>>>>> Thanks, > >>>>>>>> Mike Spencer > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>> -- > >>>>> Andy Gumbrecht > >>>>> https://twitter.com/AndyGeeDe > >>>>> http://www.tomitribe.com > >>>>> > >>>>> > > > > > > > >
