问题描述
我是Cloudant的新手。我已经编写了代码来连接cloudant数据库,它是bluemix中的DBaas
。
我已经在本地编写代码以连接cloudant DB。下面是代码
I am new to cloudant. I have written code to connect cloudant DB which is DBaasin bluemix.I have written code locally to connect cloudant DB. Below is the code
try {
user="4728f43d-fcd2-41f0-be63-8945a78a9dab-bluemix";
password="xxxxxxxxxxxxxxxx";
url="https://4728f43d-fcd2-41f0-be63-8945a78a9dab-bluemix:xxxxxxxxxxxxxxxx@4728f43d-fcd2-41f0-be63-8945a78a9dab-bluemix.cloudant.com";
System.setProperty("http.proxyHost", "9.184.9.13");
System.setProperty("http.proxyPort", "80");
//user="8452e722-8945-47d9-b372-ede45e55a7a7-bluemix";
//password="xxxxxxxxxxxxxxxx";
//url="https://8452e722-8945-47d9-b372-ede45e55a7a7-bluemix:xxxxxxxxxxxxxxxx@8452e722-8945-47d9-b372-ede45e55a7a7-bluemix.cloudant.com";
CloudantClient client = ClientBuilder.account(user)
.username(user)
.password(password)
.build();
return client;
} catch (CouchDbException e) {
throw new RuntimeException("Unable to connect to repository", e);
}
我将应用程序本地部署在Web sphere应用程序Liberty配置文件上。
访问数据库连接时出现以下异常。请告诉我连接cloudant DB需要做什么。
我正在使用cloudant-client-2.2.0.jar来访问cloudant数据库
I deployed the application locally on web sphere application Liberty profile.While accessing db connection I am getting below exception. Please tell me what needs to be done to connect cloudant DB.I am using cloudant-client-2.2.0.jar to access cloudant DB
[ERROR ] Failed to read cookie response header
Connection refused: connect
[ERROR ] Failed to get response code from request
Connection refused: connect
[err] java.lang.RuntimeException: DB Not found
[err] at com.ibm.util.CloudantClientMgr.getDB(CloudantClientMgr.java:106)
[err] at com.ibm.dao.CloudantDaoImpl.getSiteList(CloudantDaoImpl.java:54)
[err] at com.ibm.service.SocialKeyManagerImpl.getSiteList(SocialKeyManagerImpl.java:60)
[err] at com.ibm.actions.BaseAction.execute(BaseAction.java:56)
[err] at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
[err] at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
[err] at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
[err] at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
[err] at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
[err] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
[err] at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1287)
[err] at [internal classes]
[err] at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
[err] at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:207)
[err] at [internal classes]
[err] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[err] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[err] at java.lang.Thread.run(Thread.java:745)
[err] Caused by: com.cloudant.client.org.lightcouch.CouchDbException: Error retrieving server response
[err] at com.cloudant.client.org.lightcouch.CouchDbClient.execute(CouchDbClient.java:535)
[err] at com.cloudant.client.org.lightcouch.CouchDbClient.executeToInputStream(CouchDbClient.java:550)
[err] at com.cloudant.client.org.lightcouch.CouchDbClient.put(CouchDbClient.java:361)
[err] at com.cloudant.client.org.lightcouch.CouchDbClient.put(CouchDbClient.java:351)
[err] at com.cloudant.client.org.lightcouch.CouchDatabaseBase.create(CouchDatabaseBase.java:437)
[err] at com.cloudant.client.org.lightcouch.CouchDatabaseBase.<init>(CouchDatabaseBase.java:61)
[err] at com.cloudant.client.org.lightcouch.CouchDatabase.<init>(CouchDatabase.java:26)
[err] at com.cloudant.client.org.lightcouch.CouchDbClient.database(CouchDbClient.java:165)
[err] at com.cloudant.client.api.CloudantClient.database(CloudantClient.java:216)
[err] at com.ibm.util.CloudantClientMgr.getDB(CloudantClientMgr.java:103)
[err] ... 37 more
[err] Caused by: java.net.ConnectException: Connection refused: connect
[err] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[err] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[err] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[err] at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[err] at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1676)
[err] at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1674)
[err] at java.security.AccessController.doPrivileged(Native Method)
[err] at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1672)
[err] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1245)
[err] at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
[err] at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
[err] at com.cloudant.client.org.lightcouch.CouchDbClient.execute(CouchDbClient.java:483)
[err] ... 46 more
[err] Caused by: java.net.ConnectException: Connection refused: connect
[err] at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
[err] at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
[err] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
[err] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
[err] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
[err] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
[err] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
[err] at java.net.Socket.connect(Socket.java:579)
[err] at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:625)
[err] at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
[err] at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
[err] at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
[err] at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275)
[err] at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:371)
[err] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
[err] at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:933)
[err] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
[err] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301)
[err] at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
[err] at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
[err] at com.cloudant.http.interceptors.CookieInterceptor.interceptResponse(CookieInterceptor.java:102)
[err] at com.cloudant.http.HttpConnection.execute(HttpConnection.java:244)
[err] at com.cloudant.client.org.lightcouch.CouchDbClient.execute(CouchDbClient.java:475)
[err] ... 46 more
推荐答案
您使用的代理设置适用于HTTP。使用 account
方法创建 CloudantClient
时,默认情况下它将通过HTTP使用HTTPS。使用HTTPS代理应该可以解决您的问题。
The proxy settings you are using are for HTTP. When creating a CloudantClient
using the account
method it will use HTTPS over HTTP by default. Using a HTTPS proxy should solve your problem.
这篇关于从本地连接到Cloudant DB时出现连接错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!