1

我已经按照本指南设置了 usergrid 。
我已经完成的步骤包括:
1. 设置 Cassandra(nodetool status向我显示一个健康节点,我可以使用它登录cqlsh)。
2. 设置 ElasticSearch(curl localhost:9200给我一个漂亮的 .json,一切正常。)
3. 构建 usergrid 应用程序mvn clean install并将构建移动ROOT.warCATALINA_BASE
4. 创建usergrid-deployment.propertiesCATALINA_HOMEat/usr/share/tomcat7

当我启动 tomcat7 服务时,一切正常,catalina 日志中没有错误。最后一行是“服务器启动”。

catalina.out日志中我有一行:

信息:启动 Servlet 引擎:Apache Tomcat/7.0.52 (Ubuntu) 2016 年 3 月 8 日上午 9:33:25 org.apache.catalina.startup.HostConfig deployWAR
信息:部署 Web 应用程序存档 /var/lib/tomcat7/webapps/ ROOT.war
2016 年 3 月 8 日上午 10:02:50 org.apache.catalina.util.SessionIdGenerator createSecureRandom 信息:使用 [SHA1PRNG] 为会话 ID 生成创建 SecureRandom 实例花费 [5$
2016 年 3 月 8 日 10:02:50 AM org.apache.coyote.AbstractProtocol 启动
信息:启动 ProtocolHandler [“http-bio-8080”] 2016 年 3 月 8 日上午 10:02:50 org.apache.catalina.startup.Catalina 启动
信息:服务器启动时间为 5561 毫秒

所以 usergrid 应用程序应该正在运行。

我可以浏览localhost:8080并查看 Tomcat7“It works”- 页面。

但是,当我尝试像这样设置 usergrid 数据库时:

curl -X PUT http://localhost:8080/system/database/setup -u [user]:[password] 

我收到 403 错误:

已禁止访问指定资源。

我确信我的凭据与我usergrid-deployment.propertiesCATALINA_HOMEusergridsysadmin.login凭据中定义的凭据相匹配。

在 tomcat7localhost_access_log中,我有以下输出:

0:0:0:0:0:0:0:1 - - [08/Mar/2016:12:27:43 +0200] “PUT /system/database/setup HTTP/1.1”403 979

但是(number2),当我尝试curl -v localhost:8080/status查看 usergrid 应用程序的状态时,我得到

404 - 请求的资源不可用

因此,关于我可能会做什么的任何帮助:a)确保使用 tomcat 正确部署了 usergrid 应用程序(因为日志中没有错误 b)以解决 403 问题?

感谢您的任何帮助!

编辑:

我注意到我的CATALINA_BASE( /var/lib/tomcat/) 里面根本没有WEB_INF目录webapps。在我参考的指南中,我们只被指示将 ROOT.war文件复制到webapps目录。这个对吗?我还应该从 usergrid 堆栈中复制 WEB-INF 文件吗?

指南是这样说
的:下一步是将 Usergrid Stack 软件部署到 Tomcat。有多种方法可以做到这一点,最简单的可能是将 Usergrid Stack ROOT.war 文件放入 Tomcat webapps 目录,然后重新启动 Tomcat。

我尝试将WEB-INF文件复制到CATALINA_BASE但导致多个错误并且tomcat7无法启动:

这个:

21:25:49,923 WARN Slf4jConnectionPoolMonitorImpl:31 - BadRequestException: [host=localhost(127.0.0.1):9160,latency=16(38),尝试=1]InvalidRequestException(为什么:您尚未登录)

和:

INFO 传输:93 - [node-1] bound_address {inet[0.0.0.0/0.0.0.0:9301]},publish_address {inet[/XX.XXX.XXX.XXX:9301]} 21:25:51,892 INFO 发现: 85 - [node-1] elasticsearch/RIaKYgv1R-yTKJ_aknZOuw 21:25:51,905 WARN netty:620 - [node-1] 在传输层 [[id: 0xc1bc7fca]] 上捕获异常,关闭连接 java.net.UnknownHostException: localhost: 9200



编辑 2:我被告知只有 Elasticsearch v 1.4.4 有效(我尝试使用 2.2.0)和 Cassandra 1.2.x 和 2.1.x 版本(我尝试使用 3.0.3)。我还没有尝试过这些版本,如果我让它工作,我会更新这个问题。

4

1 回答 1

0

我没有给你答案,但我确实有几点意见:

  • 如果您看到 Tomcat “它可以工作”页面,这意味着您尚未部署 Usergrid ROOT.war 文件。

  • 如果您在 /status 上看到 404,这也意味着 Usergrid 没有正确部署。

  • 官方发布的 Usergrid ROOT.war 文件,包含 WEB-INF 目录,不需要单独部署。您需要添加到 Tomcat 的唯一文件是 ROOT.war、usergrid-deployment.properties 和(可选)log4j.properties。

问题可能是 Usergrid 无法连接到 Cassandra 或 ElasticSearch 并且 ROOT.war 文件无法部署到 Tomcat。

如果您共享您的 Usergrid 属性文件(首先删除所有密码),则可能更容易诊断阻止部署 Usergrid WAR 文件的问题。

于 2016-03-14T11:47:56.610 回答