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

Reply via email to