OK. This is likely an issue with the docs then. I'll see if I can update it shortly.
> -----Original Message----- > From: Nicolás [mailto:nico...@devels.es] > Sent: Tuesday, October 20, 2015 1:13 PM > To: cas-user@lists.jasig.org > Subject: Re: [cas-user] javax.persistence.TransactionRequiredException on > CAS > 4.1.1 > > Hi Misagh, > > Sorry, I should probably have mentioned I just want Services via JPA, so I > followed [1] which indeed mentions factoryBean, and that's my exact > configuration which was working so far with 4.1.0. > > For ticketing we're using Hazelcast. > > If you need a debug level log I can provide it. > > Thanks. > > Regards. > > [1]: http://jasig.github.io/cas/4.1.x/installation/Service-Management.html > > El 20/10/15 a las 14:50, Misagh Moayyed escribió: > > Make sure your config matches the docs, exactly by the letter. For > instance, you want your entity manager to be called “entityManagerFactory”, > and not “factoryBean”. > > > > - Misagh > > > >> On Oct 20, 2015, at 4:46 AM, nico...@devels.es wrote: > >> > >> Hi, > >> > >> We just upgraded to CAS 4.1.1. When saving a service in the > >> cas-management > webapp, the following exception is thrown: > >> > >> 2015-10-20 12:34:57,509 ERROR > >> [org.jasig.cas.services.web.RegisteredServiceSimpleFormController] - > >> <javax.persistence.TransactionRequiredException: No transactional > >> EntityManager available > >> java.lang.RuntimeException: > javax.persistence.TransactionRequiredException: No transactional > EntityManager available > >> at > org.jasig.cas.services.web.RegisteredServiceSimpleFormController.saveService_ > aroundBody0(RegisteredServiceSimpleFormController.java:102) > >> at > org.jasig.cas.services.web.RegisteredServiceSimpleFormController$AjcClosure1. > run(RegisteredServiceSimpleFormController.java:1) > >> at > org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) > >> at > org.jasig.inspektr.aspect.TraceLogAspect.traceMethod(TraceLogAspect.java:44) > >> at > org.jasig.cas.services.web.RegisteredServiceSimpleFormController.saveService( > RegisteredServiceSimpleFormController.java:85) > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >> at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > >> at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl. > java:43) > >> at java.lang.reflect.Method.invoke(Method.java:606) > >> at > org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(Invoca > bleHandlerMethod.java:221) > >> at > org.springframework.web.method.support.InvocableHandlerMethod.invokeForReques > t(InvocableHandlerMethod.java:137) > >> at > org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandler > Method.invokeAndHandle(ServletInvocableHandlerMethod.java:110) > >> at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAd > apter.invokeHandleMethod(RequestMappingHandlerAdapter.java:776) > >> at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAd > apter.handleInternal(RequestMappingHandlerAdapter.java:705) > >> at > org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handl > e(AbstractHandlerMethodAdapter.java:85) > >> at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServle > t.java:959) > >> at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet > .java:893) > >> at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServ > let.java:966) > >> at > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java > :868) > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) > >> at > org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.jav > a:842) > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > >> at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationF > ilterChain.java:303) > >> at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCha > in.java:208) > >> at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(Chara > cterEncodingFilter.java:85) > >> at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFi > lter.java:107) > >> at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(Delegatin > gFilterProxy.java:344) > >> at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilte > rProxy.java:261) > >> at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationF > ilterChain.java:241) > >> at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCha > in.java:208) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:316) > >> at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.i > nvoke(FilterSecurityInterceptor.java:126) > >> at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.d > oFilter(FilterSecurityInterceptor.java:90) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(E > xceptionTranslationFilter.java:114) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.session.SessionManagementFilter.doFilter(Ses > sionManagementFilter.java:122) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.authentication.AnonymousAuthenticationFilter > .doFilter(AnonymousAuthenticationFilter.java:111) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequest > Filter.doFilter(SecurityContextHolderAwareRequestFilter.java:168) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilte > r(RequestCacheAwareFilter.java:48) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.authentication.www.BasicAuthenticationFilter > .doFilterInternal(BasicAuthenticationFilter.java:158) > >> at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFi > lter.java:107) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.authentication.ui.DefaultLoginPageGenerating > Filter.doFilter(DefaultLoginPageGeneratingFilter.java:162) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.authentication.AbstractAuthenticationProcess > ingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.authentication.AbstractAuthenticationProcess > ingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter( > LogoutFilter.java:120) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter. > java:120) > >> at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFi > lter.java:107) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(H > eaderWriterFilter.java:64) > >> at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFi > lter.java:107) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.context.request.async.WebAsyncManagerIntegra > tionFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53) > >> at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFi > lter.java:107) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doF > ilter(SecurityContextPersistenceFilter.java:91) > >> at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter > (FilterChainProxy.java:330) > >> at > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChai > nProxy.java:213) > >> at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.j > ava:176) > >> at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(Delegatin > gFilterProxy.java:344) > >> at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilte > rProxy.java:261) > >> at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationF > ilterChain.java:241) > >> at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCha > in.java:208) > >> at > org.jasig.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfo > ThreadLocalFilter.java:62) > >> at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationF > ilterChain.java:241) > >> at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCha > in.java:208) > >> at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.jav > a:220) > >> at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.jav > a:122) > >> at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase. > java:501) > >> at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) > >> at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) > >> at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: > 116) > >> at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) > >> at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Proces > sor.java:1041) > >> at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(Abstract > Protocol.java:607) > >> at > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:3 > 13) > >> at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:114 > 5) > >> at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:61 > 5) > >> at java.lang.Thread.run(Thread.java:745) > >> Caused by: javax.persistence.TransactionRequiredException: No > transactional EntityManager available > >> at > org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInv > ocationHandler.invoke(SharedEntityManagerCreator.java:275) > >> at com.sun.proxy.$Proxy48.merge(Unknown Source) > >> at > org.jasig.cas.services.JpaServiceRegistryDaoImpl.save_aroundBody4(JpaServiceR > egistryDaoImpl.java:58) > >> at > org.jasig.cas.services.JpaServiceRegistryDaoImpl$AjcClosure5.run(JpaServiceRe > gistryDaoImpl.java:1) > >> at > org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) > >> at > org.jasig.inspektr.aspect.TraceLogAspect.traceMethod(TraceLogAspect.java:44) > >> at > org.jasig.cas.services.JpaServiceRegistryDaoImpl.save(JpaServiceRegistryDaoIm > pl.java:56) > >> at > org.jasig.cas.services.DefaultServicesManagerImpl.save_aroundBody10(DefaultSe > rvicesManagerImpl.java:147) > >> at > org.jasig.cas.services.DefaultServicesManagerImpl$AjcClosure11.run(DefaultSer > vicesManagerImpl.java:1) > >> at > org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) > >> at > org.jasig.inspektr.aspect.TraceLogAspect.traceMethod(TraceLogAspect.java:44) > >> at > org.jasig.cas.services.DefaultServicesManagerImpl.save(DefaultServicesManager > Impl.java:147) > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >> at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > >> at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl. > java:43) > >> at java.lang.reflect.Method.invoke(Method.java:606) > >> at > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUt > ils.java:317) > >> at > org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint( > ReflectiveMethodInvocation.java:190) > >> at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflecti > veMethodInvocation.java:157) > >> at > org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(M > ethodInvocationProceedingJoinPoint.java:85) > >> at > org.jasig.inspektr.audit.AuditTrailManagementAspect.handleAuditTrail(AuditTra > ilManagementAspect.java:128) > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >> at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > >> at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl. > java:43) > >> at java.lang.reflect.Method.invoke(Method.java:606) > >> at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithG > ivenArgs(AbstractAspectJAdvice.java:621) > >> at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(Abst > ractAspectJAdvice.java:610) > >> at > org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvic > e.java:68) > >> at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflecti > veMethodInvocation.java:168) > >> at > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(Expose > InvocationInterceptor.java:92) > >> at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflecti > veMethodInvocation.java:179) > >> at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProx > y.java:207) > >> at com.sun.proxy.$Proxy51.save(Unknown Source) > >> at > org.jasig.cas.services.web.RegisteredServiceSimpleFormController.saveService_ > aroundBody0(RegisteredServiceSimpleFormController.java:93) > >> ... 87 more > >> > >> This worked so far at 4.1.0. Hibernate version is 4.3.10.Final, and the > configuration at managementConfigContext.xml is the following: > >> > >> <tx:annotation-driven /> > >> > >> <bean id="factoryBean" > >> > class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" > >> p:dataSource-ref="dataSource" > >> p:jpaVendorAdapter-ref="jpaVendorAdapter" > >> p:packagesToScan-ref="packagesToScan"> > >> <property name="jpaProperties"> > >> <props> > >> <prop > key="hibernate.dialect">${database.hibernate.dialect}</prop> > >> <prop key="hibernate.hbm2ddl.auto">update</prop> > >> <prop > key="hibernate.jdbc.batch_size">${database.hibernate.batchSize:10}</prop> > >> </props> > >> </property> > >> </bean> > >> > >> <util:list id="packagesToScan"> > >> <value>org.jasig.cas.services</value> > >> <value>org.jasig.cas.ticket</value> > >> <value>org.jasig.cas.adaptors.jdbc</value> > >> </util:list> > >> > >> <bean id="jpaVendorAdapter" > >> > class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" > >> p:generateDdl="true" > >> p:showSql="true" /> > >> > >> <bean id="serviceRegistryDao" > >> class="org.jasig.cas.services.JpaServiceRegistryDaoImpl" /> > >> > >> <bean id="transactionManager" > >> class="org.springframework.orm.jpa.JpaTransactionManager" > >> p:entityManagerFactory-ref="factoryBean" /> > >> > >> <bean > >> class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanP > >> ostProcessor" /> > >> > >> <bean > >> id="dataSource" > >> class="org.apache.commons.dbcp.BasicDataSource" > >> p:driverClassName="${database.driverClass}" > >> p:url="${database.url}" > >> p:password="${database.password}" > >> p:username="${database.user}" /> > >> > >> Any hint? If needed, I can provide DEBUG level logs. > >> > >> Thanks. > >> > >> -- > >> You are currently subscribed to cas-user@lists.jasig.org as: > >> mmoay...@unicon.net To unsubscribe, change settings or access > >> archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user > > > > > -- > You are currently subscribed to cas-user@lists.jasig.org as: > mmoay...@unicon.net To unsubscribe, change settings or access archives, > see > http://www.ja-sig.org/wiki/display/JSG/cas-user -- You are currently subscribed to cas-user@lists.jasig.org as: arch...@mail-archive.com To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user