获取错误状态 500 将 reactmongo 连接到 mlabs
Posted
技术标签:
【中文标题】获取错误状态 500 将 reactmongo 连接到 mlabs【英文标题】:Getting an err status 500 connecting reactmongo to mlabs 【发布时间】:2019-12-18 05:01:26 【问题描述】:底部的解决方案
我正在尝试通过 mlabs 将我的反应式 spring webflux 项目连接到 mongodb。但是从 api 和文档中我不知道是哪种方法导致了我的问题。我设置了两种方法来使用我的 mlab db,但不知道我应该坚持哪一种。
方法一 > 在应用程序属性中设置我的mlab uri
spring.data.mongodb.uri=mongodb://<fernando>:<password>@ds261277.mlab.com:61277/cont-api?AuthMechanism=SCRAM-SHA-1
我尝试过小写,用 & & & 号代替问号并添加
spring.data.mongodb.database=mycollection
结果:我的代码运行了,但是当我提出任何请求(获取、发布等)时出现错误,添加或删除“?AuthMechanism=SCRAM-SHA-1”不会有所作为
ERROR 2423 --- [ntLoopGroup-2-2] a.w.r.e.AbstractErrorWebExceptionHandler : [eb675923] 500 Server Error for HTTP POST "/content/v1/cont/"
org.springframework.data.mongodb.UncategorizedMongoDbException: Exception authenticating MongoCredentialmechanism=SCRAM-SHA-1, userName='<fernando>', source='cont-api', password=<hidden>, mechanismProperties=; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredentialmechanism=SCRAM-SHA-1, userName='<fernando>', source='cont-api', password=<hidden>, mechanismProperties=
方法 2 > 像这样创建一个 dataConfig,但是当我运行时,我得到一个尝试连接到本地 mongodb 的错误
@Configuration
public class DataConfig
private static final String DATABASE_NAME = "hospitals";
private static final String DATABA_URL = "mongodb://<fernando>:<password>@ds261277.mlab.com:61277/cont-api";
MongoClient mongoClient = MongoClients.create(new ConnectionString(DATABA_URL));
MongoDatabase database = mongoClient.getDatabase(DATABASE_NAME);
// @Bean
// public ReactiveMongoDatabaseFactory mongoDatabaseFactory(MongoClient mongoClient)
// return new SimpleReactiveMongoDatabaseFactory(mongoClient, DATABASE_NAME);
//
//
// @Bean
// public ReactiveMongoOperations reactiveMongoTemplate(ReactiveMongoDatabaseFactory database)
// return new ReactiveMongoTemplate(database);
//
结果:
[localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
任何帮助都会很棒,在此先感谢
更新和解决方案: 所以我放弃了方法二并坚持方法一,我只需要从 mlab uri 中删除尖括号,而不是现在 //fernando:password ...
【问题讨论】:
请写下您的解决方案的答案,以便关闭 【参考方案1】:所以请注意任何使用 mlab 的人,完全忘记删除尖括号
之前:
spring.data.mongodb.uri=mongodb://<fernando>:<password>@ds261277.mlab.com:61277/cont-api
之后:周围没有用户名和密码
spring.data.mongodb.uri=mongodb://fernando:password@ds261277.mlab.com:61277/cont-api
【讨论】:
以上是关于获取错误状态 500 将 reactmongo 连接到 mlabs的主要内容,如果未能解决你的问题,请参考以下文章
尝试将 php 文件连接到 localhost:localhost 当前无法处理此请求。 HTTP 错误 500
Spotify web api 在获取播放列表请求时返回状态 500
Azure DevOps Artifact Feed 在 Visual Studio 中给出 500 错误