Невозможно подключиться к MongoDB в приложении Spring Boot

Я только что создал очень простой проект Spring Boot, используя Spring Tool Suite с mongoDB-reactive зависимости и запускаю приложение, но я продолжаю получать следующие исключения

2019-11-27 00:31:19.699 ИНФОРМАЦИЯ 11988 --- [localhost:27017] org.mongodb.driver.cluster: исключение в потоке монитора при подключении к серверу localhost: 27017

com.mongodb.MongoSocketOpenException: сокет открытия исключения в com.mongodb.connection.netty.NettyStream$OpenChannelFutureListener.operationComplete(NettyStream.java:410) ~[mongodb-driver-core-3.11.2.jar:na] в

Я использую Spring Boot (2.2.1.RELEASE)

Внутри applications.properties Я добавил следующую строку

spring.data.mongodb.uri=mongodb://localhost:27017/testdb

Что мне не хватает?

3 ответа

Если вам нужен встроенный mongo, добавьте зависимость https://mvnrepository.com/artifact/de.flapdoodle.embed/de.flapdoodle.embed.mongo

В качестве альтернативы вы можете легко установить экземпляр mongo на свой локальный.

Я только что заметил, что добавленная мной зависимость является тестовой. После удаления все заработало.

    <dependency>
        <groupId>de.flapdoodle.embed</groupId>
        <artifactId>de.flapdoodle.embed.mongo</artifactId>
        <version>2.2.0</version>
    </dependency>

MongoSocketOpenException происходит, когда приложение весенней загрузки не может подключиться к mongo db с использованием заданных данных подключения (или локального хоста по умолчанию и порта 27017)

Проверьте, запущен ли экземпляр MongoDB с помощью оболочки mongo, в случае сбоя проверьте конфигурацию сервера mongo db для прослушивания интерфейса ip (чтобы включить прослушивание всех интерфейсов - используйте сетевую конфигурацию как

net: bindIp: 127.0.0.1 port: 27017

В моем случае я пытался подключиться к службе mongo, присутствующей в k8s, из другого загрузочного приложения спринта, я понял, что SpringBoot имеет некоторые функции автоматической настройки, которые он пытался подключиться к localhost:27017 по умолчанию во время запуска приложения, чтобы пропустить его, я пришлось исключить его в приложении yaml: spring.autoconfigure.exclude:org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration

Другие вопросы по тегам