#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