我正在尝试将Spring Boot应用程序连接到MongoDB,但出现以下错误:
启动ApplicationContext时出错。显示条件报告 在启用“调试”的情况下重新运行您的应用程序。 2020-09-16 17:21:17.728 错误10036 --- [restartedMain] o.s.boot.SpringApplication
:应用程序运行失败org.springframework.beans.factory.BeanCreationException:错误 创建在类路径资源中定义的名称为“ mongo”的bean [org / springframework / boot / autoconfigure / mongo / MongoAutoConfiguration.class]: 通过工厂方法实例化Bean失败;嵌套异常为 org.springframework.beans.BeanInstantiationException:失败 实例化[com.mongodb.client.MongoClient]:工厂方法'mongo' 抛出异常;嵌套异常为 com.mongodb.MongoConfigurationException:无法查找TXT记录 用于主机simulacao.yko5j.mongodb.net,网址为 org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:635) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1176) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0(AbstractBeanFactory.java:324) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) 〜[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) 〜[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) 〜[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) 〜[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) 〜[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) 〜[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 〜[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) 〜[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) 〜[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 com.simulacao.simulacao.SimulacaoApplication.main(SimulacaoApplication.java:10) 〜[classes /:na]在 java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机 方法)〜[na:na]在 java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 〜[na:na]在 java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 〜[na:na]在 java.base / java.lang.reflect.Method.invoke(Method.java:564)〜[na:na] 在 org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) 〜[spring-boot-devtools-2.3.3.RELEASE.jar:2.3.3.RELEASE]原因: org.springframework.beans.BeanInstantiationException:失败 实例化[com.mongodb.client.MongoClient]:工厂方法'mongo' 抛出异常;嵌套异常为 com.mongodb.MongoConfigurationException:无法查找TXT记录 用于主机simulacao.yko5j.mongodb.net,网址为 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]在 org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE] ... 25个常见帧 省略的原因:com.mongodb.MongoConfigurationException:无法 在以下位置查找主机simulacao.yko5j.mongodb.net的TXT记录 com.mongodb.internal.dns.DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords(DefaultDnsResolver.java:131) 〜[mongodb-driver-core-4.0.5.jar:na]在 com.mongodb.ConnectionString。(ConnectionString.java:378) 〜[mongodb-driver-core-4.0.5.jar:na]在 org.springframework.boot.autoconfigure.mongo.MongoClientFactorySupport.applyHostAndPort(MongoClientFactorySupport.java:102) 〜[spring-boot-autoconfigure-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 org.springframework.boot.autoconfigure.mongo.MongoClientFactorySupport.computeClientSettings(MongoClientFactorySupport.java:70) 〜[spring-boot-autoconfigure-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 org.springframework.boot.autoconfigure.mongo.MongoClientFactorySupport.createMongoClient(MongoClientFactorySupport.java:61) 〜[spring-boot-autoconfigure-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration.mongo(MongoAutoConfiguration.java:57) 〜[spring-boot-autoconfigure-2.3.3.RELEASE.jar:2.3.3.RELEASE]在 java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机 方法)〜[na:na]在 java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 〜[na:na]在 java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 〜[na:na]在 java.base / java.lang.reflect.Method.invoke(Method.java:564)〜[na:na] 在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) 〜[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE] ... 26个常见框架 省略原因:javax.naming.NameNotFoundException:DNS名称不正确 发现于[响应代码3] jdk.naming.dns / com.sun.jndi.dns.DnsClient.checkResponseCode(DnsClient.java:664) 〜[jdk.naming.dns:na]在 jdk.naming.dns / com.sun.jndi.dns.DnsClient.isMatchResponse(DnsClient.java:582) 〜[jdk.naming.dns:na]在 jdk.naming.dns / com.sun.jndi.dns.DnsClient.doUdpQuery(DnsClient.java:430) 〜[jdk.naming.dns:na]在 jdk.naming.dns / com.sun.jndi.dns.DnsClient.query(DnsClient.java:214) 〜[jdk.naming.dns:na]在 jdk.naming.dns / com.sun.jndi.dns.Resolver.query(Resolver.java:81) 〜[jdk.naming.dns:na]在 jdk.naming.dns / com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:434) 〜[jdk.naming.dns:na]在 java.naming / com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContext.java:235) 〜[na:na]在 java.naming / com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:141) 〜[na:na]在 java.naming / com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:129) 〜[na:na]在 java.naming / javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:171) 〜[na:na]在 com.mongodb.internal.dns.DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords(DefaultDnsResolver.java:114) 〜[mongodb-driver-core-4.0.5.jar:na] ...省略了36个常见框架
我的application.properties:
spring.data.mongodb.uri=mongodb+srv://renan:masterkey@simulacao.yko5j.mongodb.net/simulacao?retryWrites=true&w=majority
我的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.simulacao</groupId>
<artifactId>simulacao</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>simulacao</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>14</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
</project>
我通过Atlas MongoDB创建了到数据库的连接。
我不知道如何解决这个问题。
谢谢。
答案 0 :(得分:0)
这似乎是错误跟踪与数据库的连接问题。您可以检查端口27017是否被防火墙阻止。您需要在防火墙中为此端口打开出站和入站。
适用于Windows的步骤: