Подключение Spring Data MongoDB к Mongo Atlas выдает сообщение об отсутствии отправленного имени SNI, убедитесь, что используется ошибка драйвера / оболочки MongoDB 3.4+

Я начал новый проект Kotlin + Spring Boot. Здесь я хотел бы подключиться к моему кластеру Mongo Atlas через Spring Data MongoDB.

Я настраиваю довольно простую конфигурацию через application.properties (были определены заполнители):

spring.data.mongodb.uri=mongodb+srv://backend:<password>@my-cluster.kluqx.gcp.mongodb.net/<db_name>?retryWrites=true&w=majority&authSource=admin

Эта проблема:

При запуске приложения возникает следующее исключение:

Caused by: com.mongodb.MongoCommandException: Command failed with error 8000 (AtlasError): 'no SNI name sent, make sure using a MongoDB 3.4+ driver/shell.' on server my-cluster-shard-00-02.kluqx.gcp.mongodb.net:27017. The full response is {"ok": 0, "errmsg": "no SNI name sent, make sure using a MongoDB 3.4+ driver/shell.", "code": 8000, "codeName": "AtlasError"}
at com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:175) ~[mongodb-driver-core-4.0.5.jar:na]
...

Мои попытки до сих пор:

Вот мои зависимости относительно этой задачи:

// shortened to the relevant parts
plugins {
    id("org.jlleitschuh.gradle.ktlint") version "9.3.0"
    id("org.springframework.boot") version "2.3.3.RELEASE"
    id("io.spring.dependency-management") version "1.0.10.RELEASE"
    kotlin("jvm") version "1.3.72"
    kotlin("plugin.spring") version "1.3.72"
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-actuator")
    implementation("org.springframework.boot:spring-boot-starter-data-mongodb")
    implementation("org.springframework.boot:spring-boot-starter-webflux")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("io.projectreactor.kotlin:reactor-kotlin-extensions")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
    implementation("com.graphql-java:graphql-spring-boot-starter:5.0.2")
    implementation("com.graphql-java:graphql-java-tools:5.2.4")
    developmentOnly("org.springframework.boot:spring-boot-devtools")
    annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
    testImplementation("org.springframework.boot:spring-boot-starter-test") {
        exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
    }
    testImplementation("de.flapdoodle.embed:de.flapdoodle.embed.mongo")
    testImplementation("io.projectreactor:reactor-test")
}

java.sourceCompatibility = JavaVersion.VERSION_1_8

tasks.withType<KotlinCompile> {
    kotlinOptions {
        freeCompilerArgs = listOf("-Xjsr305=strict")
        jvmTarget = "1.8"
    }
}

РЕДАКТИРОВАТЬ 1. Согласно Gradle, у меня следующие драйверы:

org.mongodb:mongodb-driver-core:4.0.5
org.mongodb:mongodb-driver-sync:4.0.5

Вы также можете видеть, что в упомянутом выше исключении, где трассировка стека связана с ~[mongodb-driver-core-4.0.5.jar:na]


person xetra11    schedule 30.08.2020    source источник
comment
Так какая у вас версия драйвера?   -  person D. SM    schedule 30.08.2020
comment
Также получите эту работу, используя только драйвер без весенней загрузки и т. Д.   -  person D. SM    schedule 30.08.2020
comment
@ D.SM Пожалуйста, отметьте РЕДАКТИРОВАТЬ 1   -  person xetra11    schedule 31.08.2020
comment
Попробуйте другую среду выполнения java, возможно, докер с другой ОС, и выполните простой тест с драйвером.   -  person D. SM    schedule 31.08.2020
comment
@ D.SM Пробовал 1.8, 11 и 14 сейчас - не повезло. Может надо найти другой способ с драйвером :(   -  person xetra11    schedule 31.08.2020
comment
Для общего уровня Atlas требуется SNI. Вы можете попробовать кластер M10 или больше.   -  person D. SM    schedule 31.08.2020


Ответы (1)


Проблема действительно заключалась в JDK. Поменял на 14 везде!

  • Модули структуры проекта и проект
  • Gradle
  • build.gradle файл
person xetra11    schedule 30.08.2020