nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

GitBucketをWildFly / JBoss EAPで動かしてみる

GitBucketさんがとても便利そうなので動かしてみよう。使ったのはGitBucket 1.6。

WildFly 8.0.0.Beta1, JBoss EAP 6.1.1 (JBoss AS 7.2.1), JBoss EAP 6.2.0.Beta1 (JBoss AS 7.3.0)の3つで試したけどどれも、WildFlyでは動かなかった。Scalatraがきちんと動いていなさそうな雰囲気で、JBoss EAPでは問題なく動いてるので動かない原因は恐らくWildFly側。まだコミュニティBetaなので生暖かく見守る。

WildFlyで動かなかったのでログでも出そうかと思ってGitBucketのパッケージ名見たらGitBucketユニークな部分がなくてapp.Fooとかservice.Barのような名前になっているのでログの制御とか面倒そう。でもソースみたらログほとんど吐いてなかったので制御も何もなかった。

さて、JBoss EAPでは全く問題なく動くのだけれども、デプロイ時に以下のWARNが出る。

WARN  [org.jboss.as.ee] JBAS011006: Not installing optional component org.scalatra.FutureSupport$$anon$1 due to an exception (enable DEBUG log level to see the cause)

これはorg.scalatra.FutureSupport$$anon$1がimplements javax.servlet.AsyncListenerとなっているEEのコンポーネントなのにデフォルトコンストラクタが無いからインジェクション可能なコンポーネントとしてインストールできなかったよ、という警告。Java EE仕様違反だろうけど、ScalatraはEEのインジェクション使ってないだろうからまぁ実害無さそうなので無視。

シャットダウン時にERRORも出る。

15:58:06,454 ERROR [stderr] org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-171]
15:58:06,454 ERROR [stderr] 	at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
15:58:06,454 ERROR [stderr] 	at org.h2.message.DbException.get(DbException.java:169)
15:58:06,454 ERROR [stderr] 	at org.h2.message.DbException.get(DbException.java:146)
15:58:06,455 ERROR [stderr] 	at org.h2.message.DbException.get(DbException.java:135)
15:58:06,455 ERROR [stderr] 	at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1391)
15:58:06,455 ERROR [stderr] 	at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1366)
15:58:06,455 ERROR [stderr] 	at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:192)
15:58:06,455 ERROR [stderr] 	at org.h2.server.web.DbStarter.contextDestroyed(DbStarter.java:73)
15:58:06,456 ERROR [stderr] 	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3427)
15:58:06,456 ERROR [stderr] 	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:3920)
15:58:06,456 ERROR [stderr] 	at org.jboss.as.web.deployment.WebDeploymentService.doStop(WebDeploymentService.java:171)
15:58:06,456 ERROR [stderr] 	at org.jboss.as.web.deployment.WebDeploymentService.access$100(WebDeploymentService.java:60)
15:58:06,456 ERROR [stderr] 	at org.jboss.as.web.deployment.WebDeploymentService$2.run(WebDeploymentService.java:113)
15:58:06,457 ERROR [stderr] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
15:58:06,457 ERROR [stderr] 	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
15:58:06,457 ERROR [stderr] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
15:58:06,457 ERROR [stderr] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
15:58:06,457 ERROR [stderr] 	at java.lang.Thread.run(Thread.java:724)
15:58:06,458 ERROR [stderr] 	at org.jboss.threads.JBossThread.run(JBossThread.java:122)

これはh2が多重シャットダウンされたときにprintStackTrace()しちゃってる雰囲気だけど、既に報告されて1.7で直ってるっぽい。