gpt4 book ai didi

java - UnknownHostException 尝试通过 Ektorp 连接到 Cloudant DB

转载 作者:行者123 更新时间:2023-11-29 03:57:05 28 4
gpt4 key购买 nike

这不是点击应该如何使用 Ektorp 连接到托管的 Cloudant 数据库.我通过新的 m2eclipse 在 Eclipse 中使用 Ektorp 1.1 Maven 集成(非常棒)。除了 javadocs,我正在努力寻找好的 CouchDB/Cloudant/Ektorp 文档。

我正在尝试从他们的 main page 中获取示例 Ektorp API 示例工作:

HttpClient httpClient = new StdHttpClient.Builder()
.host("localhost")
.port(5984)
.build();

CouchDbInstance dbInstance = new StdCouchDbInstance(httpClient);
CouchDbConnector db = new StdCouchDbConnector("mydatabase", dbInstance);

db.createDatabaseIfNotExists();

无论我使用什么来构建 httpClient,我总是会收到下面的 UnknownHostException 错误。我已经为主机尝试了这些 URL:https/http://cloudant.com/db/_session 和 https/http://[username].cloudant.com

端口号呢?用户名和密码是否应包含在 StdHttpClient.Builder() 中?

这是完整的错误 - 它在 createDatabaseIfNotExists() 调用中失败,但我不确定 CouchDbConnector 变量是否正确。

Exception in thread "main" org.ektorp.DbAccessException: java.net.UnknownHostException: https://cloudant.com/db/_session
at org.ektorp.util.Exceptions.propagate(Exceptions.java:19)
at org.ektorp.http.StdHttpClient.executeRequest(StdHttpClient.java:104)
at org.ektorp.http.StdHttpClient.get(StdHttpClient.java:42)
at org.ektorp.http.RestTemplate.get(RestTemplate.java:21)
at org.ektorp.impl.StdCouchDbInstance.getAllDatabases(StdCouchDbInstance.java:61)
at org.ektorp.impl.StdCouchDbConnector.createDatabaseIfNotExists(StdCouchDbConnector.java:256)
at com.codegouge.examples.App.main(App.java:30)
Caused by: java.net.UnknownHostException: https://cloudant.com/db/_session
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:850)
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1201)
at java.net.InetAddress.getAllByName0(InetAddress.java:1154)
at java.net.InetAddress.getAllByName(InetAddress.java:1084)
at java.net.InetAddress.getAllByName(InetAddress.java:1020)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:126)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
at org.ektorp.http.StdHttpClient.executeRequest(StdHttpClient.java:96)

最佳答案

所以我做错了几件事。使用 SSL requires additional parameters .另外,Ektorp 1.1.1 includes SSL-related bug fixes到 1.1.0。所以这是我最终的 HttpClient 构造函数:

HttpClient httpClient = new StdHttpClient.Builder()
.host("[username].cloudant.com")
.port(443)
.username("[username]")
.password("[password]")
.enableSSL(true)
.relaxedSSLSettings(true)
.build();

此外,请务必更新 pom.xml 中 ektorp 的依赖项以查找版本“1.1.1”。我有一篇涵盖此练习的博客文章 here如果有兴趣。

关于java - UnknownHostException 尝试通过 Ektorp 连接到 Cloudant DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5761712/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com