gpt4 book ai didi

java - MongoLab 身份验证失败

转载 作者:太空宇宙 更新时间:2023-11-04 12:55:07 26 4
gpt4 key购买 nike

我已将我的 Web 应用程序上传到 Heroku,并且有一个名为“MongoLab”的附加组件。我将 MongoLab 的凭据放入 Spring XML 文件中,当我运行它时,出现错误:

{"message":"Failed to authenticate to database [heroku_c82w85xw], username = [heroku_c82w85xw], password = [k************************c]","code":"org.springframework.data.mongodb.CannotGetMongoDbConnectionException

所以我还制作了一个保存凭据的 Java 配置文件,但我仍然遇到相同的错误。我已经尝试了几周,但仍然遇到同样的错误。以下是我的 Spring XML 和 Java 配置文件。

Spring XML 文件:

    <mongo:mongo id="mongo" host="ds055575.mongolab.com" port="55575"/>

<mongo:db-factory
id="mongoDbFactory"
host="ds055575.mongolab.com"
port="55575"
username="heroku_c82w85xw"
password="XXX"
dbname="heroku_c82w85xw"
mongo-ref="mongo"/>

<bean id="anotherMongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>

<bean id="userDaoImpl" class="service.UserDaoImpl">
<constructor-arg name="mongoOps" ref="anotherMongoTemplate" />
</bean>
<bean id="userService" class="service.UserService">
<property name="userDaoImpl" ref="userDaoImpl" />
</bean>

Java 配置文件:

@Configuration
public class JavaConfig {
public MongoClient getDB() {
String uri = "mongodb://heroku_c82w85xw:XXX"
+ "@ds055575.mongolab.com:55575/heroku_c82w85xw?authMechanism=SCRAM-SHA-1";
MongoClientURI mongoURI = new MongoClientURI(uri);
MongoClient client = null;
try {
client = new MongoClient(mongoURI);
} catch (Exception e) {
e.printStackTrace();
}
return client;
}
}

有人可以帮我解决这个错误吗?提前致谢。

最佳答案

您应该从 MongoLab 为您设置的环境变量中提取它,而不是对 URI 进行硬编码。这是一个例子:

String uri = System.getenv("MONGOLAB_URI");
MongoClientURI uri = new MongoClientURI(uri);
MongoClient client = new MongoClient(uri);
DB db = client.getDB(uri.getDatabase());

这是 MongoLab 在 documentation 中推荐的内容.

关于java - MongoLab 身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35473184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com