Error with all JPA connection

100 views
Skip to first unread message

Marco Pagnanelli

unread,
Feb 28, 2024, 10:54:59 AM2/28/24
to CAS Community
Hi all,
we have a problem with cas 7 overlay template
when we add a module that use JPA, On cas 6.5.7 everything works correctly.

If we integrate jpa ticket registry
implementation "org.apereo.cas:cas-server-support-jpa-ticket-registry:${project.'cas.version'}" 
in build.gradle we have the following error

2024-02-28 16:04:25,251 ERROR [org.springframework.boot.web.embedded.tomcat.TomcatStarter] - <Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'casCorsFilter' defined in class path resource [org/apereo/cas/config/CasFiltersConfiguration$CasFiltersCorsConfiguration.class]: Unsatisfied dependency expressed through method 'casCorsFilter' parameter 1: Error creating bean with name 'corsHttpWebRequestConfigurationSource' defined in class path resource [org/apereo/cas/config/CasFiltersConfiguration$CasFiltersCorsConfiguration.class]: Unsatisfied dependency expressed through method 'corsHttpWebRequestConfigurationSource' parameter 3: Error creating bean with name 'servicesManager' defined in class path resource [org/apereo/cas/config/CasCoreServicesConfiguration$CasCoreServicesManagerConfiguration.class]: Unsatisfied dependency expressed through method 'servicesManager' parameter 0: Error creating bean with name 'defaultServicesManagerExecutionPlanConfigurer' defined in class path resource [org/apereo/cas/config/CasCoreServicesConfiguration$CasCoreServicesManagerExecutionPlanConfiguration.class]: Unsatisfied dependency expressed through method 'defaultServicesManagerExecutionPlanConfigurer' parameter 1: Error creating bean with name 'servicesManagerConfigurationContext' defined in class path resource [org/apereo/cas/config/CasCoreServicesConfiguration$CasCoreServicesManagerExecutionPlanConfiguration.class]: Unsatisfied dependency expressed through method 'servicesManagerConfigurationContext' parameter 1: Error creating bean with name 'serviceRegistry' defined in class path resource [org/apereo/cas/config/CasCoreServicesConfiguration$CasCoreServiceRegistryConfiguration.class]: Unsatisfied dependency expressed through method 'serviceRegistry' parameter 2: Error creating bean with name 'serviceRegistryExecutionPlan' defined in class path resource [org/apereo/cas/config/CasCoreServicesConfiguration$CasCoreServiceRegistryPlanConfiguration.class]: Failed to instantiate [org.apereo.cas.services.ServiceRegistryExecutionPlan]: Factory method 'serviceRegistryExecutionPlan' threw exception with message: Error creating bean with name 'jpaServiceRegistryExecutionPlanConfigurer' defined in class path resource [org/apereo/cas/config/JpaServiceRegistryConfiguration$JpaServiceRegistryPlanConfiguration.class]: Unsatisfied dependency expressed through method 'jpaServiceRegistryExecutionPlanConfigurer' parameter 1: Error creating bean with name 'jpaServiceRegistry': Injection of persistence dependencies failed>

Our config properties
cas.service-registry.jpa.driver-class=com.mysql.cj.jdbc.Driver
cas.service-registry.jpa.enabled=true
cas.service-registry.jpa.password=password
cas.service-registry.jpa.url=jdbc:mysql://url
cas.service-registry.jpa.user=username
cas.service-registry.jpa.ddl-auto=update
cas.service-registry.jpa.dialect=org.hibernate.dialect.MySQLDialect
cas.service-registry.jpa.autocommit=true



if we integrate support events jpa
implementation "org.apereo.cas:cas-server-support-events-jpa:${project.'cas.version'}"
we have the following error

2024-02-28 16:30:18,500 WARN [org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext] - <Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultCasEventListener' defined in class path resource [org/apereo/cas/config/CasCoreEventsConfiguration$CasCoreEventsListenerConfiguration.class]: Unsatisfied dependency expressed through method 'defaultCasEventListener' parameter 3: Error creating bean with name 'casEventRepository': Injection of persistence dependencies failed>
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91)
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53)
        at org.springframework.boot.loader.launch.WarLauncher.main(WarLauncher.java:57)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultCasEventListener' defined in class path resource [org/apereo/cas/config/CasCoreEventsConfiguration$CasCoreEventsListenerConfiguration.class]: Unsatisfied dependency expressed through method 'defaultCasEventListener' parameter 3: Error creating bean with name 'casEventRepository': Injection of persistence dependencies failed
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$1(AbstractBeanFactory.java:364)
        at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope.java:375)
        at org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:179)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:361)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1232)
        at org.springframework.cloud.context.scope.refresh.RefreshScope.eagerlyInitialize(RefreshScope.java:126)
        at org.springframework.cloud.context.scope.refresh.RefreshScope.start(RefreshScope.java:118)
        at org.springframework.cloud.context.scope.refresh.RefreshScope.onApplicationEvent(RefreshScope.java:113)
        at org.springframework.cloud.context.scope.refresh.RefreshScope.onApplicationEvent(RefreshScope.java:68)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:451)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:384)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:982)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:628)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:464)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
        at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:149)
        at org.apereo.cas.web.CasWebApplication.main(CasWebApplication.java:57)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        ... 4 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'casEventRepository': Injection of persistence dependencies failed
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessProperties(PersistenceAnnotationBeanPostProcessor.java:388)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1418)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$1(AbstractBeanFactory.java:364)
        at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope.java:375)
        at org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:179)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:361)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
        at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
        at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911)
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
        ... 33 more
Caused by: java.lang.ClassCastException: class org.springframework.beans.factory.support.NullBean cannot be cast to class jakarta.persistence.EntityManagerFactory (org.springframework.beans.factory.support.NullBean and jakarta.persistence.EntityManagerFactory are in unnamed module of loader org.springframework.boot.loader.launch.LaunchedClassLoader @5caf905d)
        at org.springframework.orm.jpa.EntityManagerFactoryUtils.findEntityManagerFactory(EntityManagerFactoryUtils.java:108)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findNamedEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:574)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:554)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:724)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:697)
        at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:270)
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessProperties(PersistenceAnnotationBeanPostProcessor.java:385)
        ... 46 more

> Task :run FAILED

FAILURE: Build failed with an exception.


are we doing the configuration wrong?

thanks!



Marco Pagnanelli

unread,
Feb 29, 2024, 9:53:47 AM2/29/24
to CAS Community, Marco Pagnanelli
Hi to all,
I was able to get cas v7 to start by disabling in the build.gradle
implementation "org.apereo.cas:cas-server-support-pm-jdbc"

there seems to be incompatibility with
implementation "org.apereo.cas:cas-server-support-jpa-service-registry"
implementation "org.apereo.cas:cas-server-support-events-jpa"
implementation "org.apereo.cas:cas-server-support-jpa-ticket-registry"

Has anyone encountered the same problem and has a solution?

thanks


Reply all
Reply to author
Forward
0 new messages