首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[io.r2dbc.spi.ConnectionFactory]:java.lang.NoSuchFieldError: LOCK_WAIT_TIMEOUT

[io.r2dbc.spi.ConnectionFactory]:java.lang.NoSuchFieldError: LOCK_WAIT_TIMEOUT
EN

Stack Overflow用户
提问于 2022-04-01 17:23:14
回答 1查看 697关注 0票数 0

我的项目在启动时失败,出现了给定的错误:

Failed to instantiate [io.r2dbc.spi.ConnectionFactory]: Factory method 'connectionFactory' threw exception; nested exception is java.lang.NoSuchFieldError: LOCK_WAIT_TIMEOUT

代码语言:javascript
复制
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-r2dbc</artifactId>
        <version>1.4.3</version>
    </dependency>
    <dependency>
        <groupId>com.oracle.database.r2dbc</groupId>
        <artifactId>oracle-r2dbc</artifactId>
        <version>0.4.0</version>
    </dependency>

我该怎么解决呢?

EN

回答 1

Stack Overflow用户

发布于 2022-04-01 17:23:14

tl;dr:在撰写本文时,在Spring项目中使用oracle-r2dbc 0.1.0。

oracle-r2dbc 0.4.0依赖于io.r2dbc:r2dbc-spi的更新版本,而不是spring-data-r2dbc 1.4.3。

要使更改生效,您可能必须清除生成工具或IDE的缓存。(在我的例子中,mvn clean和IntelliJ“使缓存失效.”)

顺便说一句,当我降级时,我认为它破坏了rdbc中的描述符,所以我不得不切换到这样的URL:r2dbc:oracle://<host>:<port>/<service-name>

更新,刚刚在甲骨文的驱动程序文档上看到了r2dbc,它说:

如果使用

编程,则使用R2DBC的0.1.0版本。Oracle的后期版本实现了0.9.x版本的R2DBC SPI。目前,Spring只支持实现SPI 0.8.x版本的驱动程序。

https://github.com/oracle/oracle-r2dbc

不要在Spring中使用0.2.0 --比没有错误更糟糕的是,查询永远挂起。我花了一天的时间来调试它。不仅我有错误的版本,而且当我真的尝试更改版本时,我的IDE将旧版本与Maven不同步地缓存起来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71710673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档