获取错误状态 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 函数状态码 500 内部服务器错误

Azure DevOps Artifact Feed 在 Visual Studio 中给出 500 错误

如何将 grails 配置为始终在状态 500 上显示自己的错误页面

当我将网站上传到生产环境时,如何修复错误 500