简体   繁体   中英

Compatibility version spring cloud, r2dbc

I try to use spring with r2dbc

here my build.gradle

plugins {
    id 'org.springframework.boot' version '2.2.0.M4'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
    maven { url "https://repo.spring.io/snapshot" }
    maven { url "https://repo.spring.io/milestone" }
}

ext {
    set('springCloudVersion', "Greenwich.SR2")
}

dependencies {

     compile('io.jsonwebtoken:jjwt:0.9.1')

    //implementation 'io.jsonwebtoken:jjwt:0.9.1'

    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-webflux'
    implementation 'org.springframework.cloud:spring-cloud-starter-config'
    implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'



    //runtime 'io.r2dbc:r2dbc-pool:0.8.0.M8'
    implementation 'io.r2dbc:r2dbc-postgresql:1.0.0.M7'
    compile 'io.r2dbc:r2dbc-pool:1.0.0.BUILD-SNAPSHOT'
    implementation 'org.springframework.boot.experimental:spring-boot-starter-r2dbc:0.1.0.M1'
    implementation 'org.springframework.boot.experimental:spring-boot-starter-data-r2dbc:0.1.0.M1'



    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'io.projectreactor:reactor-test'
    testImplementation 'org.springframework.security:spring-security-test'
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

When a call is done to findAll of repository, this error happen

java.lang.NoSuchMethodError: org.springframework.transaction.reactive.TransactionSynchronizationManager.currentTransaction()Lreactor/core/publisher/Mono;

update version to snapshot seem to fix issue about transaction

The issue is in M1 spring-data-r2dbc , provided by 0.1.0.M1 of spring-boot-starter-data-r2dbc - you'll need to use the snapshot builds for now instead.

So change:

implementation 'org.springframework.boot.experimental:spring-boot-starter-data-r2dbc:0.1.0.M1'

to:

implementation 'org.springframework.boot.experimental:spring-boot-starter-data-r2dbc:0.1.0.BUILD-SNAPSHOT'

...and you should be good to go.

Worth noting that, at the time of writing at least, the relational reactive stuff (anything r2dbc based) is very bleeding edge and not at all something to use in production; the natural implication of that is that snapshot builds are required to work around bugs and instabilities from time to time. This will likely change in the future.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM