AWS EC2中的Java Google Glass入门项目映射

时间:2014-05-05 21:26:26

标签: java servlets amazon-ec2 google-glass google-mirror-api

我坚持使用Google Glass Java Starter Project。 我已成功下载并使用mvn jetty:run在本地运行它。它在我的机器上的localhost上运行得很漂亮。我成功地将它部署到Google App Engine,但我想为它添加更多功能,因此我决定使用Java Quartz库将预定通知发送到玻璃器皿。不幸的是,石英库工作产生新的线程,GAE不允许我这样做。我决定在一个单独的服务器(Amazon EC2)中运行它,我能够部署它,但我有一个servlet映射错误。

我得到的错误是:

    HTTP Status 404 - /oauth2callback
    type Status report

    message /oauth2callback

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

我试图在每个网址模式中添加“玻璃”部分,但这不起作用。 我知道这是一个servlet映射问题,但我不知道如何解决它。这是我的web.xml

这是我的web.xml中的servlets部分

    <!-- 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>

有人会非常友好地指出我正确的方向吗?或解释为什么这不起作用?

更新 对于遇到同样问题的人,我修好了。用户囚徒指出了我正确的方向,但我在跟踪领先时遇到了困难。 通过将应用程序作为“ROOT”运行,他的意思是让应用程序运行: http://amazon-server.com:8080/

我试图将其作为“玻璃”运行

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

它正在弄乱我想要做的一切。您所要做的就是删除webapps文件夹中的文件夹ROOT并上传重命名为“ROOT.war”的预编译战争

我使用的确切命令是:

    scp -i myamazon.pem /Users/.../.../mirror-api-quickstart/target/glass-java-starter-0.1-SNAPSHOT.war ubuntu@ec2-99-99-99-99.compute-1.amazonaws.com:/var/lib/tomcat7/webapps/ROOT.war

它应该顺利运行。

非常感谢囚犯! :)

1 个答案:

答案 0 :(得分:0)

战争文件扩展到与文件同名的目录中。然后,这将成为webapp的名称。因此,名为glass.war的文件将扩展为名为glass的Web应用程序,并且对它的所有引用都必须包含webapp名称作为路径的一部分。

OAuth的路径类似https://example.com/glass/oauth2callback。您需要在开发人员控制台中将其作为重定向网址之一输入。