Как я могу устранить эту ошибку отказа в подключении, пожалуйста?

#java #mongodb #spring-boot

Вопрос:

Я подключаюсь к MongoDB в своем java-приложении, но получаю ошибку отказа в подключении. Я подключался к бд в прошлом, но не прикасался к приложению около 6 месяцев. com.mongodb.MongoSocketOpenException: Исключение, открывающее сокет в com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongo-java-драйвер-3.12.8.jar:na] Вызвано: java.net.ConnectException: Отказано в подключении

Комментарии:

1. «Отказано в подключении» означает, что по этому адресу ничего не прослушивается, чтобы принять соединение. Поэтому я бы предположил, что вы не используете сервер MongoDB, как вы думаете.

Ответ №1:

В файле docker-compose.yml вы связываете приложение spring boot только с mongodb.

В файле application.properties вы используете mongodb, который не является допустимым хостом.

Вам необходимо передать переменные среды для вашего приложения spring. Для этого вы можете сделать что-то подобное в своем docker-compose.yml.

 version: "3"
services:
  mymongodb:
    image: mongo:latest
    container_name: "mymongodb"
    ports:
      - 27017:27017
  spring-mongo:
    image: spring-mongo:1.0
    container_name: spring-mongo
    ports:
      - 8080:8080
    environment:
      - MONGO_HOST=mymongodb
    links:
      - mymongodb
 

И в вашем приложении.свойства,

 spring.data.mongodb.host=${MONGO_HOST}
 

Комментарии:

1. Я не запускаю docker, но встроенный apache tomcat в весенней загрузке, вот журнал до ошибки 2021 — [ основной] o.s.b.w.встроенный.tomcat. TomcatWebServer : Tomcat запущен на портах: 8080(http) с контекстным путем » 2021-05-03 20:24:56.447 ИНФОРМАЦИЯ 17550 — [ главная] g.s.s.Приложение KafkaProjectInSprinbootApplication : Запущено приложение KafkaProjectInSprinbootApplication за 1.804 секунды (JVM работает для 2.331) 2021-05-03 20:24:57.433 ИНФОРМАЦИЯ 17550 — [локальный хост:27017] org.mongodb.драйвер.кластер : Исключение в потоке монитора при подключении к локальному хосту сервера:27017