[英]MongoDB 3.0.0/2/3 Java Driver Kerberos Authentication on Windows using JDK1.6.45
[英](MongoDB Java Driver (3.0.0-rc0)) UnknownHostException & Authentication
最近,我開始使用新的MongoDB Java驅動程序(3.0.0-rc0)。 目前,我有兩個問題。
ServerAddress類不再拋出UnknownHostException ,我使用此異常來確定連接是否成功,現在該如何使用?
DB類現在變成了MongoDatabase類。 當不贊成使用DB類時,我使用了authenticate(String username,char [] password)進行身份驗證,但是現在我需要使用MongoCredential類,如何檢查身份驗證是否成功?
致謝,朱利安(Julian)vd Berkmortel
3.0 Java驅動程序的位置是
是嚴重的應用程序配置錯誤,通常需要人工干預,因此僅在驅動程序正常使用過程中通過拋出異常而間接地在API中浮出水面。
因此,在這兩種情況下,驅動程序最終都會從需要連接到MongoDB服務器的任何方法中引發MongoTimeoutException。 該異常將包括一條消息,指示連接失敗的根本原因。 例如,以下程序:
MongoClient mongoClient = new MongoClient(new ServerAddress("unknown-host-name"),
MongoClientOptions.builder()
.serverSelectionTimeout(5000)
.build());
mongoClient.getDatabase("admin").runCommand(new Document("ping", 1));
將在此消息中引發異常:
Timed out after 30000 ms while waiting for a server that matches
ReadPreferenceServerSelector{readPreference=primary}.
Client view of cluster state is {type=UNKNOWN,
servers=[{address=unknown-host-name:27017, type=UNKNOWN, state=CONNECTING,
exception={com.mongodb.MongoSocketException: unknown-host-name},
caused by {java.net.UnknownHostException: unknown-host-name}}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.