春季启动升级从2.6.6到2.7.1 -dev.miku:r2dbc -mysql

发布于 2025-02-13 20:41:52 字数 3833 浏览 0 评论 0 原文

我将Spring Boot从2.6.6升级到2.7.1,并运行到R2DBC-MYSQL错误中。

使用Spring Boot 2.6.6,我正在使用R2DBC-MYSQL。

runtimeOnly 'dev.miku:r2dbc-mysql'

将Spring Boot升级到2.7.1之后,会出现汇编错误。

因此,从build.gradle中评论了上述内容,并在运行时获得下面的错误。

Caused by: java.lang.IllegalStateException: Unable to create a ConnectionFactory for 'ConnectionFactoryOptions{options={database=test, host=app-dev-mysql.sdferf1234.us-east-2.rds.amazonaws.com, driver=mysql, password=REDACTED, protocol=, port=3306, user=test}}'. Available drivers: [ pool ]
    at io.r2dbc.spi.ConnectionFactories.get(ConnectionFactories.java:143) ~[r2dbc-spi-0.9.1.RELEASE.jar:?]
    at org.springframework.boot.r2dbc.ConnectionFactoryBuilder$OptionsCapableWrapper.buildAndWrap(ConnectionFactoryBuilder.java:191) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.r2dbc.ConnectionFactoryBuilder$PoolingAwareOptionsCapableWrapper.buildAndWrap(ConnectionFactoryBuilder.java:207) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.r2dbc.ConnectionFactoryBuilder.build(ConnectionFactoryBuilder.java:177) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations.createConnectionFactory(ConnectionFactoryConfigurations.java:68) ~[spring-boot-autoconfigure-2.7.1.jar:2.7.1]
    at org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$GenericConfiguration.connectionFactory(ConnectionFactoryConfigurations.java:121) ~[spring-boot-autoconfigure-2.7.1.jar:2.7.1]
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1160) ~[spring-context-5.3.21.jar:5.3.21]
    at org.springframework.data.r2dbc.config.AbstractR2dbcConfiguration.lookupConnectionFactory(AbstractR2dbcConfiguration.java:236) ~[spring-data-r2dbc-1.5.1.jar:1.5.1]

I am upgrading spring boot from 2.6.6 to 2.7.1 and running into r2dbc-mysql error.

With Spring boot 2.6.6, I am using r2dbc-mysql.

runtimeOnly 'dev.miku:r2dbc-mysql'

Getting compilation error after upgrading Spring boot to 2.7.1.

So, commented the above from build.gradle and getting the error below at runtime.

Caused by: java.lang.IllegalStateException: Unable to create a ConnectionFactory for 'ConnectionFactoryOptions{options={database=test, host=app-dev-mysql.sdferf1234.us-east-2.rds.amazonaws.com, driver=mysql, password=REDACTED, protocol=, port=3306, user=test}}'. Available drivers: [ pool ]
    at io.r2dbc.spi.ConnectionFactories.get(ConnectionFactories.java:143) ~[r2dbc-spi-0.9.1.RELEASE.jar:?]
    at org.springframework.boot.r2dbc.ConnectionFactoryBuilder$OptionsCapableWrapper.buildAndWrap(ConnectionFactoryBuilder.java:191) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.r2dbc.ConnectionFactoryBuilder$PoolingAwareOptionsCapableWrapper.buildAndWrap(ConnectionFactoryBuilder.java:207) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.r2dbc.ConnectionFactoryBuilder.build(ConnectionFactoryBuilder.java:177) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations.createConnectionFactory(ConnectionFactoryConfigurations.java:68) ~[spring-boot-autoconfigure-2.7.1.jar:2.7.1]
    at org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$GenericConfiguration.connectionFactory(ConnectionFactoryConfigurations.java:121) ~[spring-boot-autoconfigure-2.7.1.jar:2.7.1]
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1160) ~[spring-context-5.3.21.jar:5.3.21]
    at org.springframework.data.r2dbc.config.AbstractR2dbcConfiguration.lookupConnectionFactory(AbstractR2dbcConfiguration.java:236) ~[spring-data-r2dbc-1.5.1.jar:1.5.1]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅暮の光 2025-02-20 20:41:52

尝试使用实现组:'dev.miku',名称:'r2dbc-mysql',版本:'0.8.2.release'而不是 runtime> runtimeonly'dev.miku:r2dbc-mysql'' ,我遇到了同样的问题,对我有用。

Try with implementation group: 'dev.miku', name: 'r2dbc-mysql', version: '0.8.2.RELEASE' instead of runtimeOnly 'dev.miku:r2dbc-mysql', I had the same issue and it worked for me.

长途伴 2025-02-20 20:41:52

用户1578872。
作为 io.asyncer的维护者:r2dbc-mysql ,我想通知您,您所面临的问题的根本原因是Spring Boot 2.7.1使用 R2DBC-SPI :0.9.1.Release ,而 dev.miku:r2dbc-mysql:0.8.2 支持 R2DBC-SPI:0.8。*。我建议您切换到使用 io.asyncer:r2dbc-mysql:0.9.2 ,它支持 r2dbc-spi:0.9.1.release ,是<代码> dev.miku:r2dbc-mysql 。

以下是当前兼容性表

Spring-boot-starter-data-r2DBC spring-data-r2DBC r2dbc r2dbc-spi r2dbc-mysql(建议)
。* 3.0 3.0 。 1
2.7。* 1.5。* 0.9.1.Release io.Asyncer:R2DBC-MYSQL:0.9.2
*且低于 1.4

2.6 -mysql 基础戴上您当前的春季启动版。

有关更多信息,您可以通过。如果您还有其他问题或遇到任何问题,请随时在存储库中创建问题。我们在这里为您提供帮助!

谢谢你!

user1578872.
As the maintainer of io.asyncer:r2dbc-mysql, I would like to inform you that the root cause of the issue you're facing is that Spring Boot 2.7.1 uses r2dbc-spi:0.9.1.RELEASE, whereas dev.miku:r2dbc-mysql:0.8.2 supports r2dbc-spi:0.8.*. I suggest you switch to using io.asyncer:r2dbc-mysql:0.9.2, which supports r2dbc-spi:0.9.1.RELEASE and is the official successor to dev.miku:r2dbc-mysql.

below is the current compatibility table

spring-boot-starter-data-r2dbc spring-data-r2dbc r2dbc-spi r2dbc-mysql(recommended)
3.0.* 3.0.* 1.0.0.RELEASE io.asyncer:r2dbc-mysql:1.0.1
2.7.* 1.5.* 0.9.1.RELEASE io.asyncer:r2dbc-mysql:0.9.2
2.6.* and below 1.4.* and below 0.8.6.RELEASE dev.miku:r2dbc-mysql:0.8.2

Please make sure to use the appropriate version of r2dbc-mysql base don your current Spring boot version.

For more information, you can visit the official repository at https://github.com/asyncer-io/r2dbc-mysql. If you have any further questions or run into any issues, please feel free to create an issue in the repository. We're here to help!

Thank you!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文