[cas-user] cas jpa-ticket-registry with oauth-webflow javax.persistence.TransactionRequiredException
I am trying to get a jpa-ticket-registry configured for CAS but I'm getting a TransactionRequiredException in CAS when my application tries to verify the login token with CAS. The exception is: javax.persistence.TransactionRequiredException: Executing an update/delete query at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1496) ~[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_192] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_192] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_192] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_192] at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:375) ~[spring-orm-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] at com.sun.proxy.$Proxy216.executeUpdate(Unknown Source) ~[?:?] at org.apereo.cas.ticket.registry.JpaTicketRegistry.deleteSingleTicket(JpaTicketRegistry.java:158) ~[cas-server-support-jpa-ticket-registry-5.3.11.jar!/:5.3.11] at org.apereo.cas.ticket.registry.AbstractTicketRegistry.deleteTicket(AbstractTicketRegistry.java:121) ~[cas-server-core-tickets-api-5.3.11.jar!/:5.3.11] at org.apereo.cas.ticket.registry.AbstractTicketRegistry.deleteTicket(AbstractTicketRegistry.java:98) ~[cas-server-core-tickets-api-5.3.11.jar!/:5.3.11] at org.apereo.cas.ticket.registry.AbstractTicketRegistry$$FastClassBySpringCGLIB$$d3c67a11.invoke() ~[cas-server-core-tickets-api-5.3.11.jar!/:5.3.11] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:667) ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] at org.apereo.cas.ticket.registry.JpaTicketRegistry$$EnhancerBySpringCGLIB$$9000de6b.deleteTicket() ~[cas-server-support-jpa-ticket-registry-5.3.11.jar!/:5.3.11] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_192] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_192] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_192] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_192] at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216) ~[spring-core-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:470) ~[spring-cloud-context-1.3.0.RELEASE.jar!/:1.3.0.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] at com.sun.proxy.$Proxy109.deleteTicket(Unknown Source) ~[?:?] at org.apereo.cas.support.oauth.web.response.accesstoken.OAuth20DefaultTokenGenerator.generate(OAuth20DefaultTokenGenerator.java:67) ~[cas-server-support-oauth-5.3.11.jar!/:5.3.11] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_192] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_192] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_192] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_192] at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216) ~[spring-core-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:470) ~[spring-cloud-context-1.3.0.RELEASE.jar!/:1.3.0.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] at com.sun.proxy.$Proxy175.generate(Unknown Source) ~[?:?] at org.apereo.cas.support.oauth.web.endpoints.OAuth20AccessTokenEndpointController.handleRequest(OAuth20AccessTokenEndpointController.java:119) ~[cas-server-support-oauth-5.3.11.jar!/:5.3.11] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_192] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_192] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_192] at java.lang.reflect
Re: [cas-user] cas jpa-ticket-registry with oauth-webflow javax.persistence.TransactionRequiredException
In general, don't use JPA for ticket registery it has errors; instead, use cache based ticket registery(such as, haselcast or me cache) it will perform well with you On Fri, Jul 12, 2019, 5:55 PM Ken Hopkins wrote: > I am trying to get a jpa-ticket-registry configured for CAS but I'm > getting a TransactionRequiredException in CAS when my application tries to > verify the login token with CAS. > > The exception is: > > javax.persistence.TransactionRequiredException: Executing an update/delete > query > at > org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1496) > ~[hibernate-core-5.2.17.Final.jar!/:5.2.17.Final] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[?:1.8.0_192] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[?:1.8.0_192] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[?:1.8.0_192] > at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_192] > at > org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:375) > ~[spring-orm-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] > at com.sun.proxy.$Proxy216.executeUpdate(Unknown Source) ~[?:?] > at > org.apereo.cas.ticket.registry.JpaTicketRegistry.deleteSingleTicket(JpaTicketRegistry.java:158) > ~[cas-server-support-jpa-ticket-registry-5.3.11.jar!/:5.3.11] > at > org.apereo.cas.ticket.registry.AbstractTicketRegistry.deleteTicket(AbstractTicketRegistry.java:121) > ~[cas-server-core-tickets-api-5.3.11.jar!/:5.3.11] > at > org.apereo.cas.ticket.registry.AbstractTicketRegistry.deleteTicket(AbstractTicketRegistry.java:98) > ~[cas-server-core-tickets-api-5.3.11.jar!/:5.3.11] > at > org.apereo.cas.ticket.registry.AbstractTicketRegistry$$FastClassBySpringCGLIB$$d3c67a11.invoke() > ~[cas-server-core-tickets-api-5.3.11.jar!/:5.3.11] > at > org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > ~[spring-core-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] > at > org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:667) > ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] > at > org.apereo.cas.ticket.registry.JpaTicketRegistry$$EnhancerBySpringCGLIB$$9000de6b.deleteTicket() > ~[cas-server-support-jpa-ticket-registry-5.3.11.jar!/:5.3.11] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[?:1.8.0_192] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[?:1.8.0_192] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[?:1.8.0_192] > at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_192] > at > org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216) > ~[spring-core-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] > at > org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:470) > ~[spring-cloud-context-1.3.0.RELEASE.jar!/:1.3.0.RELEASE] > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) > ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) > ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] > at com.sun.proxy.$Proxy109.deleteTicket(Unknown Source) ~[?:?] > at > org.apereo.cas.support.oauth.web.response.accesstoken.OAuth20DefaultTokenGenerator.generate(OAuth20DefaultTokenGenerator.java:67) > ~[cas-server-support-oauth-5.3.11.jar!/:5.3.11] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[?:1.8.0_192] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[?:1.8.0_192] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[?:1.8.0_192] > at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_192] > at > org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216) > ~[spring-core-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] > at > org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:470) > ~[spring-cloud-context-1.3.0.RELEASE.jar!/:1.3.0.RELEASE] > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) > ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) > ~[spring-aop-4.3.20.RELEASE.jar!/:4.3.20.RELEASE] > at com.sun.proxy.$Proxy175.generate(Unknown Source) ~[?:?] > at > org.apereo.cas.support.oauth.web.endpoints.OAuth20AccessTokenEndpointController.handleRequest(OAuth20AccessTokenEndpointController.java:119) > ~[cas-server-su