簡體   English   中英

與MongoDB的Jelastic連接在遠程tomcat上不起作用,但是在本地tomcat連接到遠程Mongo時可以

[英]Jelastic connection to MongoDB Not working On Remote tomcat but ok when Local tomcat connect to remote Mongo

我在Jelastic上有一個環境,他們的支持無法提供幫助:P

我使用Java 8和MongoDB 2.6.4設置了Tomcat 7.0.55,對於mongo,我還設置了一個外部ip,以便可以從本地tomcat訪問。

在這里發生了什么,我能夠運行我的本地Tomcat和Jelastic遠程Mongo數據庫,但是在部署后,我從遠程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可能包含一些jar / lib,它們會干擾我使用的mongo驅動程序

謝謝你的幫助

不再需要搜索,我發現了問題

Jelastic上的tomcat繼承自某些Linux命令,例如pwd,該命令用於顯示當前目錄,我在屬性中使用pwd來檢索密碼。 它不應該發生沖突,但確實會發生沖突,我將/ opt / tomcat作為密碼而不是我的密碼

這可能是您最終需要解決的問題,因此這些變量不會與文件屬性混在一起

解決方法是使用其他屬性名稱

同樣適用於Amazon beantalk

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM