3

heroku を使用して grails アプリをホストしています。アプリを起動して実行し、新しいコントローラー メソッドのみを追加して、再デプロイしました。デプロイは成功し、エラーや奇妙な警告メッセージは表示されませんでしたが、アプリケーションは失敗しました。

ログは次のとおりです。

heroku[slugc]: Slug compilation started
heroku[api]: Deploy 02ebfa1 by x@gmail.com
heroku[api]: Release v35 created by x@gmail.com
heroku[api]: Deploy 02ebfa1 by x@gmail.com
heroku[web.1]: State changed from crashed to starting
heroku[slugc]: Slug compilation finished
heroku[web.1]: Starting process with command `java -Xmx384m -Xss512k -XX:+UseCompressedOops -jar server/webapp-runner.jar --port 49719 target/*.war`
app[web.1]: Unable to access jarfile server/webapp-runner.jar
heroku[web.1]: Process exited with status 1
heroku[web.1]: State changed from starting to crashed

私が確認できる限り、webapp-runner.jar は heroku が私のアプリケーションから作成するファイルです。ファイルが存在しない、またはアクセスできないという事実は、ファイルが存在しないか、正しくないことを示しています。heroku のコンテキスト内でこれを診断する方法はありますか?

4

2 に答える 2

4

Grails WAR を何週間も問題なく Heroku にデプロイしてきましたが、今日この問題に遭遇しました。ログにはあまりデバッグ情報がありませんが、server/webapp-runner.jar が正しくないことに気付きました (以前は jetty-runner.jar だったと思います)。そのため、以下にリンクされている Heroku での Grails の使用開始に関するドキュメントで説明されているように、プロジェクトのルート ディレクトリに独自の Procfile を追加しました。

https://devcenter.heroku.com/articles/grails#optional-declare-process-types-with-procfile

これがProcfileに追加したものです。

web: java $JAVA_OPTS -jar server/jetty-runner.jar --port $PORT target/*.war

それは私のためにそれを修正したようです。

于 2013-06-02T19:51:22.277 に答える
2

ここでのゲームには少し遅れていますが、もう少し背景を説明できます。これは、Tomcat を Grails のデフォルト コンテナーにするための変更の一部でした: https://devcenter.heroku.com/changelog-items/277

system.properties ファイルをプロジェクトに追加することで、コンテナとして Jetty を指定できるようになりました。

于 2013-06-13T22:21:19.467 に答える