0

Atlassian Bamboo Herokuプラグインを使用して、JavaWebアプリをビルドしてHerokuにデプロイしています。ビルドが正常に実行され、warファイルがHerokuにアップロードされ、そこで利用可能になるはずですが、標準のHerokuアプリケーションエラーページが表示され、Herokuログに次の情報が表示されます。

 2012-11-11T12:41:12+00:00 app[web.1]: INFO: Initializing Spring root WebApplicationContext
2012-11-11T12:41:17+00:00 app[web.1]:   at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
2012-11-11T12:41:17+00:00 app[web.1]:   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
2012-11-11T12:41:17+00:00 app[web.1]:   at java.util.concurrent.FutureTask.run(FutureTask.java:166)
2012-11-11T12:41:17+00:00 app[web.1]:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
2012-11-11T12:41:17+00:00 app[web.1]:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
2012-11-11T12:41:17+00:00 app[web.1]:   at java.lang.Thread.run(Thread.java:636)
2012-11-11T12:41:17+00:00 app[web.1]: Nov 11, 2012 12:41:17 PM org.apache.catalina.core.StandardContext startInternal
2012-11-11T12:41:17+00:00 app[web.1]: SEVERE: Error listenerStart
2012-11-11T12:41:17+00:00 app[web.1]: Nov 11, 2012 12:41:17 PM org.apache.catalina.core.StandardContext listenerStart
2012-11-11T12:41:17+00:00 app[web.1]: SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
2012-11-11T12:41:17+00:00 app[web.1]: java.lang.IllegalStateException: Cannot set web app root system property when WAR file is not expanded
2012-11-11T12:41:17+00:00 app[web.1]:   at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:137)
2012-11-11T12:41:17+00:00 app[web.1]:   at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:117)
2012-11-11T12:41:17+00:00 app[web.1]:   at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45)
2012-11-11T12:41:17+00:00 app[web.1]:   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
2012-11-11T12:41:17+00:00 app[web.1]:   at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
2012-11-11T12:41:17+00:00 app[web.1]:   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
2012-11-11T12:41:17+00:00 app[web.1]:   at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
2012-11-11T12:41:19+00:00 app[web.1]: Nov 11, 2012 12:41:19 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom
2012-11-11T12:41:19+00:00 app[web.1]: INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [2,144] milliseconds.
2012-11-11T12:41:19+00:00 app[web.1]: Nov 11, 2012 12:41:19 PM org.apache.catalina.core.StandardContext startInternal
2012-11-11T12:41:19+00:00 app[web.1]: SEVERE: Context [/] startup failed due to previous errors
2012-11-11T12:41:19+00:00 app[web.1]: SEVERE: Context [/] failed in [org.apache.catalina.core.StandardContext] lifecycle. Allowing Tomcat to shutdown.
2012-11-11T12:41:19+00:00 app[web.1]: Nov 11, 2012 12:41:19 PM org.apache.catalina.core.ApplicationContext log
2012-11-11T12:41:19+00:00 app[web.1]: INFO: Shutting down log4j
2012-11-11T12:41:19+00:00 app[web.1]: INFO: Closing Spring root WebApplicationContext

コンソールからアプリケーションwarをインストールすると(git push heroku masterを使用)、すべて正常に動作しているようです。

4

1 に答える 1

0

Log4jConfigListener を使用したい場合は、拡張された WAR でのみ機能するようです。Bamboo Heroku プラグインは展開されていない状態でデプロイする必要があるため、問題が発生しています。Log4jConfigListener を削除し、別の方法でロギングを再構成します。

Spring ログから ( http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/util/Log4jConfigListener.html ):

Web 環境でのカスタム log4j 初期化用のブートストラップ リスナー。Log4jWebConfigurer に委譲します (構成の詳細については、javadoc を参照してください)。警告: 構成ファイルのロードとログ ファイルの書き込みの両方で、展開された WAR ファイルを想定しています。WAR を拡張しないままにしておく場合、または WAR ディレクトリ内にアプリケーション固有のログ ファイルを必要としない場合は、アプリケーション内で log4j セットアップを使用しないでください (したがって、Log4jConfigListener または Log4jConfigServlet を使用しないでください)。代わりに、グローバルな VM 全体の log4j セットアップ (JBoss など) または JDK 1.4 の java.util.logging (これもグローバルです) を使用してください。

于 2012-11-12T00:16:56.200 に答える