我正在尝试使用 Google Apps 上的 Tomcat 6 获取以前在我的机器上本地运行的 .war 文件。我在 Eclipse 中创建了项目,文件结构与Google 的 GCM Example有点不同。我想我终于把所有东西都整理好了,除了最后一部分。我不知道“api.key”属于哪个目录。我在 Google Apps 服务器上的日志中的堆栈跟踪如下:
Failed startup of context com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@1ef3ccd{/,/base/data/home/apps/s~[app-name]/1.360213803566389174}
java.lang.IllegalStateException: Could not find file /api.key on web resources)
at [package-name].ApiKeyInitializer.getKey(ApiKeyInitializer.java:56)
at [package-name].ApiKeyInitializer.contextInitialized(ApiKeyInitializer.java:45)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
您可以在此链接中查看 Google 所说的目录应该是什么样子。当我关注 Google 的 GCM Demo(顶部的第一个链接)时,它会将“api.key”文件放在 WEB-INF/classes 目录下。我在新的 Google App Engine 结构中尝试了这个,我得到了上面的错误。我觉得我真的很接近,因为很明显我的 servlet 正在尝试运行,但它找不到这个文件。有谁知道把它放在哪里以便它可以找到它并且我可以让它工作?