0

私は Jelastic に環境を持っていますが、彼らのサポートは役に立ちませんでした:P

Tomcat 7.0.55 を Java 8 と MongoDB 2.6.4 でセットアップしました。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 {ユーザー名} --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 が含まれている可能性があります。

助けてくれてありがとう

4

1 に答える 1

0

もう検索する必要はありません 問題を見つけました

Jelastic の tomcat は、パスワードを取得するためにプロパティで pwd を使用する現在のディレクトリを表示するために使用される pwd などの Linux コマンドから継承します。衝突するべきではありませんが、衝突し、パスワードの代わりに /opt/tomcat をパスワードとして取得しています

これらの変数がファイルのプロパティと混ざらないように、最後に修正する必要があるかもしれません

回避策は、別のプロパティ名を持つことです

Amazon Beanstalk にも同じことが当てはまります

ありがとう

于 2015-01-09T17:05:09.523 に答える