1

mongolab経由で作成したmongoデータベースに接続しようとしています

mongolabの私のデータベースのページで言及されている標準のURIがあります:ここに画像の説明を入力してください

私はこのコードを試します:

String uriString = "mongodb://user:password@ds047037.mongolab.com:47037/db_test_01";
MongoURI uri = new MongoURI(uriString);
try {
    DB db = uri.connectDB();
    db.authenticate(uri.getUsername(), uri.getPassword());
    Set<String> colls = db.getCollectionNames();
    for (String s : colls) {
        System.out.println(s);
    }
    System.out.println("done");
    } catch (UnknownHostException e) {
        System.out.println("UnknownHostException: " + e);
    } catch(MongoException me) {
        System.out.println("MongoException: " + me);
    }

しかし、私はUnknownHostException: java.net.UnknownHostException: ds047037.mongolab.com

ドキュメントUnknownHostExceptionの説明:「ホストのIPアドレスを特定できなかったことを示すためにスローされます。」

どうしたの?

4

2 に答える 2

4

スタックのある時点でのDNS解決の問題のように見えます。java.net.UnknownHostException「ホストのIPアドレスを判別できなかったことを示すためにスローされます」です。

Javaの問題

問題はJava自体にある可能性があります。JavaとIPv6には既知の問題があります。java.net.preferIPv4Stackシステムプロパティを設定してtrue、問題が解決するかどうかを確認できます。

javaJVMを起動するときのコマンドのパラメーターとして:

java -Djava.net.preferIPv4Stack=true YourMainClass

またはプログラムで:

System.setProperty("java.net.preferIPv4Stack" , "true");

最新バージョンのJavaにアップグレードして、それに付随するすべてのバグ修正を入手することもできます。

DNSサーバーまたは構成に問題があります

この問題は、ラップトップ/マシンのDNS構成にもある可能性があります。を使用digして、そのDNSルックアップが何を返すかを確認できます。以下は、ラップトップから得たものの出力です。このWebバージョンのdigを使用して、何を取得する必要があるかを確認することもできます。

% dig ds047037.mongolab.com

; <<>> DiG 9.8.3-P1 <<>> ds047037.mongolab.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20375
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ds047037.mongolab.com.     IN  A

;; ANSWER SECTION:
ds047037.mongolab.com.  120 IN  CNAME   ds047037-a.mongolab.com.
ds047037-a.mongolab.com. 120    IN  CNAME   h000432.mongolab.com.
h000432.mongolab.com.   120 IN  CNAME   ec2-46-51-159-130.eu-west-1.compute.amazonaws.com.
ec2-46-51-159-130.eu-west-1.compute.amazonaws.com. 300 IN A 46.51.159.130

;; Query time: 23 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Jan 12 13:22:24 2013
;; MSG SIZE  rcvd: 162

DNS構成/サーバーに問題があることを確認した場合は、使用しているDNSサーバーを特定してから、所有者/管理者に連絡するか、ISPに連絡して正しく構成されていることを確認する必要があります。

于 2013-01-12T21:30:43.550 に答える
0

hostportで試してください。

Mongo mongo = new Mongo("ds047037.mongolab.com", 47037);
DB db = mongo.getDB("db_test_01");
db.authenticate(user, password); 
于 2013-01-12T19:09:51.067 に答える