提问者:小点点

Apache 点燃 Spring 数据扩展依赖项错误


我是Apache Ignite的新手,正在学习如何使用Ignite Spring数据扩展,并且遇到了依赖兼容性问题。

使用的依赖项:

    < Li > Spring Data commons 2 . 7 . 2(org . Spring framework . Data:Spring-Data-commons:2 . 7 . 2) < Li > ignite-core 2 . 13 . 0(org . Apache . ignite:ignite-core:2 . 13 . 0) < Li > ignite-spring 2 . 13 . 0(org . Apache . ignite:ignite-spring:2 . 13 . 0) < Li > ignite-spring-boot-thin-client-auto configure-ext 2 . 13 . 0(org . Apache . ignite:ignite-spring-boot-thin-client-auto configure-ext:2 . 13 . 0) < Li > ignite-indexing 2 . 13 . 0(org . Apache . ignite:ignite-indexing:2 . 13 . 0) < Li > ignite-spring-data-2.2-ext 1 . 0 . 0(org . Apache . ignite:ignite-spring-data-2.2-ext:1 . 0 . 0)或ignite-spring-data-ext 2 . 0 . 0(org . Apache . ignite:ignite-spring-data-ext:2 . 0 . 0)

行动方针:

根据文档,我应该选择一个Spring Data Commons,Ignite依赖项和Ignite Spring Data Extension的版本。所以我为所有内容选择了最新的(如上所示)。然后文档说我应该使用 ignite-spring-data-2.2-ext,因为我使用的是 Spring Data 2.7.2(

java: name clash: deleteAllById(java.lang.可迭代)在org.apache.ignite.springdata22.repository.IgniteRepostory和deleteAllById(java.lang.可迭代

谷歌搜索让我找到了这篇文章和公共maven存储库,似乎修复方法签名的新版本已经过时;所以我把点火Spring数据切换到2.0.0版本。但后来我遇到了另一个应用程序启动程序ClassNotFoundException(Spring Dependency):

java.lang.NoClassDefFoundError: org/springframework/dao/InvalidDataAccessApiUsageException
    at org.apache.ignite.springdata.repository.config.IgniteRepositoriesRegistar.getExtension(IgniteRepositoriesRegistar.java:34) ~[ignite-spring-data-ext-2.0.0.jar:2.0.0]
    at org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport.registerBeanDefinitions(RepositoryBeanDefinitionRegistrarSupport.java:100) ~[spring-data-commons-2.7.2.jar:2.7.2]
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:396) ~[spring-context-5.3.22.jar:5.3.22]
    at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[na:1.8.0_161]
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:395) ~[spring-context-5.3.22.jar:5.3.22]
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:157) ~[spring-context-5.3.22.jar:5.3.22]
    at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129) ~[spring-context-5.3.22.jar:5.3.22]
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343) ~[spring-context-5.3.22.jar:5.3.22]
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) ~[spring-context-5.3.22.jar:5.3.22]
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) ~[spring-context-5.3.22.jar:5.3.22]
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) ~[spring-context-5.3.22.jar:5.3.22]
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) ~[spring-context-5.3.22.jar:5.3.22]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.22.jar:5.3.22]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) [spring-boot-2.7.3.jar:2.7.3]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) [spring-boot-2.7.3.jar:2.7.3]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) [spring-boot-2.7.3.jar:2.7.3]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) [spring-boot-2.7.3.jar:2.7.3]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) [spring-boot-2.7.3.jar:2.7.3]
    at com.example.ignitespringdatalocal.IgniteSpringDataLocalApplication.main(IgniteSpringDataLocalApplication.java:21) [classes/:na]
Caused by: java.lang.ClassNotFoundException: org.springframework.dao.InvalidDataAccessApiUsageException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_161]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_161]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) ~[na:1.8.0_161]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_161]
    ... 19 common frames omitted*

所以我想知道:

  1. 我缺少什么maven依赖
  2. 是否有表显示Ignite Spring Data Extension的哪个版本支持哪个版本的Spring Data
  3. Ignite团队,请更新文档的这一部分,因为我对故障排除感到有点困惑,谢谢

与此同时,我会继续谷歌我错过了哪一个依赖。


共1个答案

匿名用户

看起来缺少"org.springframework: sping-tx"依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${spring.version}</version>
</dependency>

出于某种原因,它只在留档中的Spring Transaction页面上列出,这看起来不对。我已经为此提交了留档单。