【问题标题】:Android Emulator Couchbase Replication Database not found errorAndroid Emulator Couchbase 复制数据库未找到错误
【发布时间】:2017-06-05 15:54:18
【问题描述】:

面对来自 android 模拟器的 couchbase sync-gateway 与 couchbase-server 集成的问题

环境详情

  1. 在 Windows 上运行的 Android 模拟器
  2. Couchbase Lite 安装在 Windows 上
  3. VirtualBox 在 Ubuntu 上托管 couchbase 服务器和同步网关 Docker 容器

设置

  1. sync-gateway 和 couchbase-server 能够根据 Docker 容器中的日志相互通信
  2. 这两个 Docker 容器都是 Docker-hub couchbase 文档中提到的同一网络的一部分
  3. 从 Windows 启用端口转发以与 Virtual box 集成并能够访问 8091/4984/4985
  4. 在 couchbase-server 上创建了一个新的数据库/存储桶:rssfeeder
  5. 同步网关日志通过 rssfeeder 详细信息确认服务器已启动并运行

问题 1. Android Emulator 启动应用程序,复制推/拉继续为真 2. 模拟器发起远程连接并使用IP地址

http://10.0.2.2:4984/rssfeeder

控制台报错:

404 Not found
  1. 也无法从主机浏览器访问数据库。

当我第一次使用沙发/Docker/VM 时,如果能顺利完成这项工作,我将不胜感激

【问题讨论】:

  • 您是否尝试过访问 Sync Gateway 管理 Web 服务器?如果您无法从主机访问它,这是 Docker/Virtualbox 配置的问题。
  • 是的,你打对了方向。当尝试访问管理门户时,由于 Docker+Virtualbox 和主机 Windows 的原因,它与预期不符。

标签: android docker android-emulator couchbase couchbase-sync-gateway


【解决方案1】:

仔细检查您是否更改了配置文件中 Couchbase 同步网关侦听的默认端口。 如果没有,请注意同步网关侦听端口 4984(公共)和 4985(管理员)。您的请求显示“4584”。 另外,我建议直接使用 curl(或任何 http 客户端)从您的设备到同步网关进行 http 查询。如果这有效,您就知道您的配置没问题。

curl -X GET 'http://user:pass@localhost:4984/rssfeeder/_all_docs'

【讨论】:

  • 是的,端口是 4985 admin 和 4984 public。我从纯 Java 和 curl 创建了 httpclient 都工作正常。但模拟器无法解析与 VM 上的同步网关 Docker 映像的连接
  • 如果您的端口是 4985/4984,那么为什么您的原始问题表明模拟器使用端口“4584”-“10.0.2.2:4584/rssfeeder”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2012-09-21
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多