как исправить ошибку «com.mongodb.MongoSocketOpenException: исключение, открывающее сокет»?

#mongodb #spring-boot

#mongodb #весенняя загрузка

Вопрос:

Я пытаюсь подключить mongodb с помощью spring-boot. пока я это делаю, я получаю эту ошибку

      [localhost:27107] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27107
     com.mongodb.MongoSocketOpenException: Exception opening socket
  

быстрый поиск подсказывает мне добавить это в основной класс

       @SpringBootApplication
      @EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})
  

После того, как я это сделал, ошибка исчезла. но БД не была создана в mongodb, и когда я проверяю журналы весенней загрузки, нет журнала, связанного с mongodb .

Прикрепление моего POM.XML здесь

        <properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>com.querydsl</groupId>
        <artifactId>querydsl-mongodb</artifactId>
        <version>4.1.3</version>
    </dependency>


</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.mysema.maven</groupId>
            <artifactId>apt-maven-plugin</artifactId>
            <version>1.1.3</version>
            <dependencies>
                <dependency>
                    <groupId>com.querydsl</groupId>
                    <artifactId>querydsl-apt</artifactId>
                    <version>4.1.3</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>target/generated-sources/annotations</outputDirectory>
                        <processor>
                            org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor
                        </processor>
                        <logOnlyOnError>true</logOnlyOnError>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build> 
  

Пожалуйста, дайте мне знать, если вы можете мне помочь

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

1. После добавления @EnableAutoConfiguration(исключить ={MongoAutoConfiguration.class }) , это также устранило мою проблему

Ответ №1:

У меня та же проблема — mongo говорит, что он подключен к БД с помощью портов, кластеров и всего остального, но когда он пытается запустить монитор в базе данных, соединение было отклонено. После проверки всех возможных конфигураций mongo выяснилось, что проблема была в моем брандмауэре — он блокировал мои java-соединения, поэтому, когда netty попытался подключиться к mongo, брандмауэр заблокировал соединение.

Надеюсь, это поможет.

Ответ №2:

 @SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
  

Добавьте это в основной класс.

Ответ №3:

Настройка встроенного MongoDB только для тестов должна устранить ошибку.