0

在我的 Java 应用程序中,我试图连接到外部服务器上的 couchDb。我看到错误消息连接超时。

错误信息:

SEVERE: Allocate exception for servlet servlets.Chat
java.lang.IllegalArgumentException: **HTTP entity may not be null**
    at org.apache.http.util.EntityUtils.toString(EntityUtils.java:200)
    at org.apache.http.util.EntityUtils.toString(EntityUtils.java:273)

我的 CouchDb 属性

CouchDbProperties prop = new CouchDbProperties()
    .setDbName("lcouchdb")
    .setCreateDbIfNotExist(true)
    .setHost("chatapp.couchappy.com")
    .setPort(80)
    .setUsername("abc@gmail.com")
    .setPassword("bla blaaa")
    .setProtocol("http");       

我已尝试再次删除 .setPort(80) 我的应用程序引发错误

    java.lang.IllegalArgumentException: Port is invalid: 0
4

3 回答 3

2

5984 是 couchdb 的默认端口,但在 Couchappy 主机上,为了提高安全性,仅允许端口 443 上的 https。

端口 80 或 5984 上的普通 http 可能不安全并且容易受到中间人攻击,因此为了完全防止这种情况,Couchappy 工作人员决定仅接受端口 443 上的 ssl 连接。

443 是浏览器在使用 https 时使用的默认端口。因此,这意味着 Couchappy 用户可以在其上托管任何类型的数据,甚至是网站,并让他们的访问者和谷歌索引机器人访问 URL https://thedomainyouwant.couchappy.com而不是丑陋的http://thedomainyouwant .couchappy.com:5984

请注意,如果您使用某种 java 库或类似的东西,您应该明确设置协议“https”和端口“443”而不是 5984。

感谢您的提问,我们也将在 Couchappy 网站上准备一个常见问题解答页面。

于 2013-11-07T09:03:43.600 回答
0

好吧,它超时是因为服务器没有响应,而不是代码问题

curl -v http://chatapp.couchappy.com:5984/
* Adding handle: conn: 0x7f88c2804000
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7f88c2804000) send_pipe: 1, recv_pipe: 0
* About to connect() to chatapp.couchappy.com port 5984 (#0)
*   Trying 62.149.192.34...
于 2013-10-28T00:54:04.120 回答
0

在我的情况下,我在再次阅读服务器 api 文档后得到状态代码 204,没有实体,我发现 204 实际上是服务器收到信息并且一切正常的标志。

干杯

于 2014-12-04T09:39:01.597 回答