Spring Data DynamoDb 与 Spring Boot 集成(java.lang.AbstractMethodError:createPersistentProperty)

Posted

技术标签:

【中文标题】Spring Data DynamoDb 与 Spring Boot 集成(java.lang.AbstractMethodError:createPersistentProperty)【英文标题】:Spring Data DynamoDb Integration with Spring Boot(java.lang.AbstractMethodError: createPersistentProperty) 【发布时间】:2019-04-29 01:35:04 【问题描述】:

我们正在将 Dynamo Db 与我们的 Spring Boot 项目(基于 maven 的项目)进行集成,以便将其部署为 lambda 项目,该项目可以通过 dynamo db 访问数据并将其呈现到我们的静态网站。配置后repos 和我们项目的 POJOS 我们做了 mvn clean install 并发现在构建过程中发生了以下问题。

java.lang.IllegalStateException: 无法加载 ApplicationContext

原因:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“MyInteractivesFunction”的bean时出错:通过字段“MyClientDetailsRepository”表示不满足的依赖关系

嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“MyClientDetailsRepository”的 bean 时出错:调用 init 方法失败

嵌套异常是 java.lang.AbstractMethodError: org.springframework.data.mapping.context.AbstractMappingContext.createPersistentProperty(Lorg/springframework/data/mapping/model/Property;Lorg/springframework/data/mapping/model/MutablePersistentEntity; Lorg/springframework/data/mapping/model/SimpleTypeHolder;)Lorg/springframework/data/mapping/PersistentProperty;

似乎问题在于将 POJO 属性与列映射,但我们单独创建了另一个虚拟项目并且它在那里工作。需要一个解决方案。

【问题讨论】:

您找到解决方案了吗?我也面临同样的问题 @KshitizSharma 请参考下面的解释。请检查 jar 版本,它应该适合你 【参考方案1】:

经过大量搜索和应用各种方法后,我们发现问题的真正原因是 jar 不兼容。我们的 Spring boot 版本基于 2.0.3,而 spring data dynamodb 版本是 4.5.0,它们不能很好地相互配合。因此,我们找到了一个非常甜美地描述问题的链接: https://derjust.github.io/spring-data-dynamodb/ ,所以我们将 spring data dynamodb 版本更改为 5.0.4,它就像我们能够从 Dynamo Db 中检索结果的魅力一样。

【讨论】:

以上是关于Spring Data DynamoDb 与 Spring Boot 集成(java.lang.AbstractMethodError:createPersistentProperty)的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 spring-data 的多个数据源(例如 DynamoDB 和 ElasticSearch)时出现红鲱鱼 Elasticsearch 错误

DynamoDB排序不可能吗?

AWS Data管道从S3到DynamoDB的CSV数据

如何使用 Spring Boot 在 DynamoDB 中添加具有自动增量键的新项目

AWS Data Pipeline DynamoDB 到 S3 到 Redshift,包括 JsonPaths

从 DynamoDB 流复制到 Kinesis Data Streams 时如何维护顺序并避免重复记录?