Hello all,

We're in the process of migrating our old 3.5.2 CAS setup to a more recent 
version (5.2.2) and I'm testing different storage solutions for the service 
registry.

So far, I was not able to use DynamoDB, and was wondering if anyone had 
success with it. I'm guessing that it should work, as it is available and 
hopefully tested. 

I tried to create the table myself and let CAS-management or CAS create. It 
can create it, but I'm not able to insert new services using the web app.

I then tried to let CAS create the first service from JSON and it throws a 
nice error and does not populate the database.

It looks like that the table created has an numerical Primary key named id 
which is not used by the insertion process and DynamoDB does not appreciate 
that. Using DynamoDB for ticket registry seems to work fine so far.

Anyone had success with DynamoDB as storage for service registry or has a 
clue on fixing this problem?

Thanks!

2018-02-26 19:19:18,596 ERROR [org.springframework.boot.SpringApplication] 
- <Application startup failed>
org.springframework.beans.factory.BeanCreationException: Error creating 
bean with name 'scopedTarget.serviceRegistryInitializer' defined in class 
path resource 
[org/apereo/cas/config/CasServiceRegistryInitializationConfiguration.class]: 
Bean instantiation via factory method failed; nested exception is 
org.springframework.beans.BeanInstantiationException: Failed to instantiate 
[org.apereo.cas.services.ServiceRegistryInitializer]: Factory method 
'serviceRegistryInitializer' threw exception; nested exception is 
com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: The 
provided key element does not match the schema (Service: AmazonDynamoDBv2; 
Status Code: 400; Error Code: ValidationException; Request ID: ---EDITED---)
at 
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1173)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1067)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:345)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope.java:359)
 
~[spring-cloud-context-1.2.4.RELEASE.jar!/:1.2.4.RELEASE]
at 
org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:176) 
~[spring-cloud-context-1.2.4.RELEASE.jar!/:1.2.4.RELEASE]
at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:340)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1078)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.cloud.context.scope.refresh.RefreshScope.start(RefreshScope.java:121)
 
~[spring-cloud-context-1.2.4.RELEASE.jar!/:1.2.4.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_151]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_151]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_151]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
at 
org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:256)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:177)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:140)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144)
 
~[spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]
at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
 
~[spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]
at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) 
[spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]
at 
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
 
[spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:303) 
[spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]
at 
org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134)
 
[spring-boot-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]
at 
org.apereo.cas.mgmt.web.CasManagementWebApplication.main(CasManagementWebApplication.java:46)
 
[cas-management-webapp-support-5.2.2.jar!/:5.2.2]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_151]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_151]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_151]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
at 
org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 
[cas-management.war:?]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) 
[cas-management.war:?]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) 
[cas-management.war:?]
at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:59) 
[cas-management.war:?]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to 
instantiate [org.apereo.cas.services.ServiceRegistryInitializer]: Factory 
method 'serviceRegistryInitializer' threw exception; nested exception is 
com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: The 
provided key element does not match the schema (Service: AmazonDynamoDBv2; 
Status Code: 400; Error Code: ValidationException; Request ID: ---EDITED---)
at 
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
... 40 more
Caused by: com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: 
The provided key element does not match the schema (Service: 
AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; 
Request ID: ---EDITED---)
at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1638)
 
~[aws-java-sdk-core-1.11.213.jar!/:?]
at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1303)
 
~[aws-java-sdk-core-1.11.213.jar!/:?]
at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1055)
 
~[aws-java-sdk-core-1.11.213.jar!/:?]
at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743)
 
~[aws-java-sdk-core-1.11.213.jar!/:?]
at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)
 
~[aws-java-sdk-core-1.11.213.jar!/:?]
at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
 
~[aws-java-sdk-core-1.11.213.jar!/:?]
at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
 
~[aws-java-sdk-core-1.11.213.jar!/:?]
at 
com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
 
~[aws-java-sdk-core-1.11.213.jar!/:?]
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) 
~[aws-java-sdk-core-1.11.213.jar!/:?]
at 
com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.doInvoke(AmazonDynamoDBClient.java:2186)
 
~[aws-java-sdk-dynamodb-1.11.213.jar!/:?]
at 
com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:2162)
 
~[aws-java-sdk-dynamodb-1.11.213.jar!/:?]
at 
com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.executeGetItem(AmazonDynamoDBClient.java:1173)
 
~[aws-java-sdk-dynamodb-1.11.213.jar!/:?]
at 
com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.getItem(AmazonDynamoDBClient.java:1149)
 
~[aws-java-sdk-dynamodb-1.11.213.jar!/:?]
at 
com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient$$FastClassBySpringCGLIB$$3bb64833.invoke(<generated>)
 
~[aws-java-sdk-dynamodb-1.11.213.jar!/:?]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
~[spring-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.cloud.context.config.StandardBeanLifecycleDecorator$2.invoke(StandardBeanLifecycleDecorator.java:85)
 
~[spring-cloud-context-1.2.4.RELEASE.jar!/:1.2.4.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient$$EnhancerBySpringCGLIB$$258f7449.getItem(<generated>)
 
~[aws-java-sdk-dynamodb-1.11.213.jar!/:?]
at 
com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient$$FastClassBySpringCGLIB$$3bb64833.invoke(<generated>)
 
~[aws-java-sdk-dynamodb-1.11.213.jar!/:?]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
~[spring-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient$$EnhancerBySpringCGLIB$$f1d11102.getItem(<generated>)
 
~[aws-java-sdk-dynamodb-1.11.213.jar!/:?]
at 
org.apereo.cas.services.DynamoDbServiceRegistryFacilitator.getRegisteredServiceByKeys(DynamoDbServiceRegistryFacilitator.java:166)
 
~[cas-server-support-dynamodb-service-registry-5.2.2.jar!/:5.2.2]
at 
org.apereo.cas.services.DynamoDbServiceRegistryFacilitator.get(DynamoDbServiceRegistryFacilitator.java:138)
 
~[cas-server-support-dynamodb-service-registry-5.2.2.jar!/:5.2.2]
at 
org.apereo.cas.services.DynamoDbServiceRegistryFacilitator$$FastClassBySpringCGLIB$$a18a9c9b.invoke(<generated>)
 
~[cas-server-support-dynamodb-service-registry-5.2.2.jar!/:5.2.2]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
~[spring-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
 
~[spring-aop-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.apereo.cas.services.DynamoDbServiceRegistryFacilitator$$EnhancerBySpringCGLIB$$25e8f6a.get(<generated>)
 
~[cas-server-support-dynamodb-service-registry-5.2.2.jar!/:5.2.2]
at 
org.apereo.cas.services.DynamoDbServiceRegistryDao.findServiceById(DynamoDbServiceRegistryDao.java:45)
 
~[cas-server-support-dynamodb-service-registry-5.2.2.jar!/:5.2.2]
at 
org.apereo.cas.services.ServiceRegistryInitializer.findExistingMatchForService(ServiceRegistryInitializer.java:73)
 
~[cas-server-core-services-registry-5.2.2.jar!/:5.2.2]
at 
org.apereo.cas.services.ServiceRegistryInitializer.initServiceRegistryIfNecessary(ServiceRegistryInitializer.java:61)
 
~[cas-server-core-services-registry-5.2.2.jar!/:5.2.2]
at 
org.apereo.cas.config.CasServiceRegistryInitializationConfiguration.serviceRegistryInitializer(CasServiceRegistryInitializationConfiguration.java:61)
 
~[cas-server-core-services-5.2.2.jar!/:5.2.2]
at 
org.apereo.cas.config.CasServiceRegistryInitializationConfiguration$$EnhancerBySpringCGLIB$$884848e1.CGLIB$serviceRegistryInitializer$0(<generated>)
 
~[cas-server-core-services-5.2.2.jar!/:5.2.2]
at 
org.apereo.cas.config.CasServiceRegistryInitializationConfiguration$$EnhancerBySpringCGLIB$$884848e1$$FastClassBySpringCGLIB$$58bfa7e9.invoke(<generated>)
 
~[cas-server-core-services-5.2.2.jar!/:5.2.2]
at 
org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) 
~[spring-core-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358)
 
~[spring-context-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.apereo.cas.config.CasServiceRegistryInitializationConfiguration$$EnhancerBySpringCGLIB$$884848e1.serviceRegistryInitializer(<generated>)
 
~[cas-server-core-services-5.2.2.jar!/:5.2.2]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_151]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_151]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
~[?:1.8.0_151]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
at 
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
at 
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
 
~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
... 40 more

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/d8c6aa11-b4d8-4add-a4a3-6888e2fc829b%40apereo.org.

Reply via email to