[英]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.