0

Google Apps で Tomcat 6 を使用して、ローカルのマシンで以前に実行していた .war ファイルを取得しようとしています。Eclipse でプロジェクトを作成しましたが、ファイル構造はGoogle の GCM Exampleとは少し異なります。最後の1つを除いて、ようやくすべてが整ったと思います。「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 構造でそれを試しましたが、上記のエラーが発生しました。私のサーブレットが実行しようとしているのは明らかですが、このファイルが見つかりません。それを見つけて、これを機能させることができるように、どこに置くべきか知っている人はいますか?

4

1 に答える 1

0

わかりました、私はそれを理解しました。私の ApiKeyInitializer.java クラスには、次のものがありました。

private static final String PATH = "/api.key";

実際には、次のようになっている必要があります。

private static final String PATH = "api.key";

ビルドファイルについては、これらの手順に従いました。と書いてあることに気がつきましたAll other files found in src/, such as the META-INF/ directory, are copied verbatim to war/WEB-INF/classes/。これにより、api.key を Eclipse の src ディレクトリに配置して、コンパイル時に war/WEB-INF/classes に正しく配置されるようにする必要があることに気付きました。それに加えて、パスは src ディレクトリからの相対パスである必要がありましString PATH = "api.key"String PATH = "/api.key"

于 2012-07-11T05:14:01.817 に答える