2016-03-08 65 views
1

我已經在此guide之後設置了usergrid。
步驟我做過包括:
1.設置卡桑德拉(nodetool status顯示我一個希爾蒂節點,我可以用cqlsh登錄)。
2.設置ElasticSearch(curl localhost:9200給了我一個很好的以.json回來,一切就OK了。)
3. /usr/share/tomcat7
Apache Usergrid,tomcat7數據庫設置403錯誤

內置的usergrid應用與 mvn clean install和感動內置 ROOT.warCATALINA_BASE
4.創建 usergrid-deployment.propertiesCATALINA_HOME

當我啓動tomcat7服務時,一切正常,在catalina日誌中沒有錯誤。最後一行是「服務器啓動」。

catalina.out日誌我也行:

INFO: Starting Servlet Engine: Apache Tomcat/7.0.52 (Ubuntu) Mar 08, 2016 9:33:25 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/tomcat7/webapps/ROOT.war
Mar 08, 2016 10:02:50 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [5$
Mar 08, 2016 10:02:50 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"] Mar 08, 2016 10:02:50 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 5561 ms

所以usergrid應用程序應該運行。

我可以瀏覽到localhost:8080並查看Tomcat7「It works」 - 頁面。

然而,當我嘗試設置的usergrid數據庫是這樣的:

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

我得到一個403錯誤:

Access to the specified resource has been forbidden.

我相信,我的憑據匹配那些我已經定義usergrid-deployment.propertiesCATALINA_HOME作爲usergrid sysadmin.login憑據。

在tomcat7 localhost_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

但是(數字2),當我嘗試curl -v localhost:8080/status看到usergrid應用程序的狀態,我得到

404 - requested resource is not available

因此,任何幫助我做什麼: a)確保usergrid應用程序與tomcat正確部署(因爲日誌中沒有錯誤 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), attempts=1]InvalidRequestException(why:You have not logged in)

和:

INFO transport: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 discovery:85 - [node-1] elasticsearch/RIaKYgv1R-yTKJ_aknZOuw 21:25:51,905 WARN netty:620 - [node-1] exception caught on transport layer [[id: 0xc1bc7fca]], closing connection java.net.UnknownHostException: localhost:9200



編輯2:我被告知只有Elasticsearch v 1.4.4工作(我試過2.2.0)和Cassandra 1.2.x和2.1.x版本(我試過3.0.3)。我還沒有嘗試過這些版本,我會更新這個問題,如果我得到它的工作。

回答

0

我沒有給你一個答案,但我有一對夫婦的意見:

  • 如果你看到Tomcat「它的工作原理」頁面,意味着你還沒有部署Usergrid ROOT。戰爭文件。

  • 如果您看到/ on狀態爲404,那也意味着Usergrid沒有正確部署。

  • 官方發佈版附帶的Usergrid ROOT.war文件包含WEB-INF目錄,不需要單獨部署。您需要添加到Tomcat的唯一文件是ROOT.war,usergrid-deployment.properties和(可選)log4j.properties。

問題可能是Usergrid無法連接到Cassandra或ElasticSearch,並且ROOT.war文件無法部署到Tomcat。

如果您與您共享Usergrid屬性文件(先刪除任何密碼),則可能更容易診斷阻止部署Usergrid WAR文件的問題。