2

我在 openshift 上安装了一个 MongoDB 墨盒,我在从 java 代码连接到它时遇到了麻烦。IP 地址、端口和凭据取自 openshift 的 RockMongo 卡式盒。以下方法调用:

public Document insert(String audio, String username) {
    Document document = new Document();
    document.put("username", username);
    document.put("audio", audio);
    document.put("timestamp", new Date());
    collection.insertOne(document);

    return document;
}

和这个 mongo 客户端配置:

private static MongoClient build() throws UnknownHostException {
    if (mongoClient == null) {
        mongoClient = new MongoClient(
                new MongoClientURI( "mongodb://admin:password@X.X.X.X:27017/dbName"));
    }

        return mongoClient;
    }

public static MongoCollection<Document> getCollection(String collectionName) {
        try {
            build();
        } catch (UnknownHostException e) {

        }
        MongoDatabase db = mongoClient.getDatabase(dbName);

        MongoCollection<Document> collection = db.getCollection(collectionName);
        return collection;
    }

导致 INFO:PrimaryServerSelector 从集群描述 ClusterDescription 中选择没有服务器,并且异常:在等待与 PrimaryServerSelector 匹配的服务器时在 30000 毫秒后超时。

编辑:我也无法通过 mongo 终端应用程序在 openshift 上连接 mongoDB 服务:“异常:连接失败”,所以我认为这是 openshift 配置问题。端口转发和服务本身启动

4

1 回答 1

0

我想你没有正确配置集群(日志中的消息告诉了这个问题),我不确定 OpenShift Cratridge 是如何工作的,但我建议你检查它是否正确启动了 mondo-db。通过 ssh 客户端检查它并运行 mongo-db 命令以检查其状态以及是否已启动。看看这个问题:Java MongoClient cannot connect to primary,我想它让你知道如何检查你有问题的地方。

于 2015-04-22T09:21:35.613 回答