我是 Apache Ignite 的新手,正在學習如何使用 Ignite Spring Data Extension 并且遇到了依賴兼容性問題。
使用的依賴:
- Spring Data commons 2.7.2 (org.springframework.data:spring-data-commons:2.7.2)
- 點燃核心 2.13.0 (org.apache.ignite:ignite-core:2.13.0)
- 點燃彈簧 2.13.0 (org.apache.ignite:點燃彈簧:2.13.0)
- ignite-spring-boot-thin-client-autoconfigure-ext 2.13.0 (org.apache.ignite:ignite-spring-boot-thin-client-autoconfigure-ext:2.13.0)
- 點燃索引 2.13.0 (org.apache.ignite:ignite-indexing:2.13.0)
- 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 dependencies 和 Ignite Spring Data Extension。所以我為所有東西選擇了最新的(如上圖所示)。然后檔案說我應該使用 ignite-spring-data-2.2-ext,因為我使用的是 Spring Data 2.7.2 (>= 2.2)。所以我嘗試并遇到了以下 maven 構建錯誤:
java:名稱沖突:org.apache.ignite.springdata22.repository.IgniteRepository 中的 deleteAllById(java.lang.Iterable) 和 org.springframework.data.repository.CrudRepository 中的 deleteAllById(java.lang.Iterable<? extends ID>)相同的擦除,但都不會覆寫另一個*
谷歌搜索將我帶到了這篇文章和公共 maven 存盤庫,似乎修復了方法簽名的新版本已經發布;所以我切換了 ignite-spring-data-ext 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*
所以我想知道:
- 我缺少什么 Maven 依賴項?
- 是否有任何表格顯示哪個版本的 Ignite Spring Data Extension 支持哪個版本的 Spring Data?
- Ignite 團隊,請更新這部分檔案,因為我對我的故障排除感到有點迷茫,謝謝!
與此同時,我將繼續在谷歌上搜索我缺少哪個依賴項。
uj5u.com熱心網友回復:
看起來缺少“org.springframework:spring-tx”依賴項:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
由于某種原因,它只在檔案中的 Spring Transactions頁面上列出,看起來不正確。我已經為此提交了檔案票。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/507984.html