2014-05-05 26 views
0

我被Google Glass Java Starter項目卡住了。 我已成功下載並使用mvn jetty在本地運行它:運行。它在我的機器上運行在本地主機上。我成功地將它部署到Google App Engine,但我想爲其添加更多功能,因此我決定使用Java Quartz庫將預定通知發送到玻璃器皿。不幸的是,石英庫產生新的線程,GAE不允許我這樣做。我決定在單獨的服務器(Amazon EC2)中運行它,並且我可以部署它,但是我有一個servlet映射錯誤。Java AWS EC2中的Google Google Glass啓動器項目映射

我得到的錯誤是:

HTTP Status 404 - /oauth2callback 
    type Status report 

    message /oauth2callback 

    description The requested resource (/oauth2callback) is not available. 

我嘗試添加「玻璃」部分,每個URL模式,但不起作用。 我知道這是一個servlet映射問題,但我不知道如何解決它。這是我的web.xml

這是servlet的部分從我的web.xml

<!-- servlets --> 
     <servlet> 
     <servlet-name>main</servlet-name> 
     <servlet-path>com.google.glassware.MainServlet</servlet-path> 
     </servlet> 
     <servlet-mapping> 
     <servlet-name>main</servlet-name> 
     <url-pattern>/glass/main</url-pattern> 
     </servlet-mapping> 

     <servlet> 
     <servlet-name>oauth2callback</servlet-name> 
     <servlet-path>com.google.glassware.AuthServlet</servlet-path> 
     </servlet> 
     <servlet-mapping> 
     <servlet-name>oauth2callback</servlet-name> 
     <url-pattern>/glass/oauth2callback</url-pattern> 
     </servlet-mapping> 

     <servlet> 
     <servlet-name>notify</servlet-name> 
     <servlet-path>com.google.glassware.NotifyServlet</servlet-path> 
     </servlet> 
     <servlet-mapping> 
     <servlet-name>notify</servlet-name> 
     <url-pattern>/glass/notify</url-pattern> 
     </servlet-mapping> 

     <servlet> 
     <servlet-name>attachmentproxy</servlet-name> 
     <servlet-path>com.google.glassware.AttachmentProxyServlet</servlet-path> 
     </servlet> 
     <servlet-mapping> 
     <servlet-name>attachmentproxy</servlet-name> 
     <url-pattern>/glass/attachmentproxy</url-pattern> 
     </servlet-mapping> 

     <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
     </welcome-file-list> 

會有人這麼好心給我指出正確的方向?或解釋爲什麼這不起作用?

UPDATE 對於有同樣問題的人我有,我修好了。用戶犯人指引我朝着正確的方向前進,但我在領導之後很難過。 他指運行應用程序的「ROOT」什麼是在應用程序運行: http://amazon-server.com:8080/

我試圖運行它作爲「玻璃」

http://amazon-server.com:8080/glass

並且它搞亂一切我試圖做的事情。所有你需要做的就是刪除該文件夾根目錄中的webapps的文件夾,並上傳您的預編譯的戰爭更名爲「ROOT.war」

我用具體的命令是:

scp -i myamazon.pem /Users/.../.../mirror-api-quickstart/target/glass-java-starter-0.1-SNAPSHOT.war [email protected]:/var/lib/tomcat7/webapps/ROOT.war 

應該平穩運行。

非常感謝囚徒! :)

+0

這聽起來類似於http://stackoverflow.com/questions/23284260/oauth-callback-in-the-glass-quick-starter-java-app。對你來說同樣的問題 - 你是否將它作爲ROOT webapp運行?如果不是,你運行它的名字是什麼? – Prisoner

+0

是的,我確實看到了這個問題,但改變了一行「在這種情況下,在第53行,oauth2callback被映射到com.google.glassware.AuthServlet類。」沒有幫助。我有一個名爲「glass.war」的戰爭文件,我將它放在tomcat7/webapps目錄中。這部署戰爭文件,但運行該文件時,(即使網絡。xml被更改,AuthServlet類中的行)我仍然被重定向到http://aws-ec2blahblah.com/oauth2callback,並且無法顯示。這就是爲什麼我認爲這是一個映射問題,但我不知道如何前進。 – geekmlle

回答

0

戰爭文件被擴展到與該文件同名的目錄中。這然後成爲webapp的名稱。因此,一個名爲glass.war的文件被擴展到一個名爲glass的webapp,並且所有對它的引用都必須包含webapp名稱作爲路徑的一部分。

OAuth的路徑類似於https://example.com/glass/oauth2callback。您需要將其作爲重定向網址之一在開發者控制檯中輸入。

+0

非常感謝!順便說一句,任何人想知道...我不得不把這個地址添加到谷歌控制檯,但什麼是錯誤的是過濾器的網址模式( authFilter /glass/*),而不僅僅是servlet。現在我得到了一個不同的錯誤,但我走上了正軌!再次感謝。 – geekmlle