我有一个关于Jelastic的环境,他们的支持无法帮助:P
我使用java 8和MongoDB 2.6.4设置Tomcat 7.0.55 对于mongo我也设置了一个外部IP,所以我可以从我的本地tomcat访问。
发生了什么, 我能够运行我的本地Tomcat和Jelastic远程Mongo DB 但是在部署时,我从远程mongo
获取此日志2015-01-07T22:57:29.637+0000 [conn22208] authenticate db: easylend {authenticate: 1, user: "cre8tech", nonce: "xxx", key: "xxx" }
2015-01-07T22:57:29.638+0000 [conn22208] Failed to authenticate cre8tech@easylend with mechanism MONGODB-CR: AuthenticationFailed keymismatch
我1000%确定凭证是正确的,因此该方法用于记录,因为我能够在本地使用它来远程mongo +我可以使用
访问它mongo XXXX.whelastic.net/ {myDbName} --username {username} --password {password}
@Bean
@Override
public Mongo mongo() throws Exception {
ServerAddress serverAdress = new ServerAddress(host, Integer.parseInt(port));
Mongo mongo = null;
if (usr != null && !usr.isEmpty()) {
MongoCredential credential = MongoCredential.createMongoCRCredential(usr, database, pwd.toCharArray());
mongo = new MongoClient(serverAdress, Arrays.asList(credential));
} else {
mongo = new MongoClient(serverAdress);
}
mongo.setWriteConcern(WriteConcern.SAFE);
return mongo;
}
登录tomcat只是说它无法通过身份验证
com.mongodb.CommandFailureException: { "serverUsed" : "********" , "code" : 18 , "ok" : 0.0 , "errmsg" : "auth fails"}
我的理论是远程Jelastic tomcat可能包含一些干扰我使用的mongo驱动程序的jar / libs
感谢您的帮助
答案 0 :(得分:0)
不再需要搜索 我找到了问题
Jelastic上的tomcat继承了一些linux命令,例如用于显示当前目录的pwd 我在我的属性中使用pwd来检索密码。 它不应该碰撞,但确实如此,我将/ opt / tomcat作为密码而不是我的密码
这可能是您需要在最后修复的内容,因此这些变量不会与文件属性混合
解决方法是使用不同的属性名称
同样适用于Amazon beanstalk
由于