Jetty 9.4.6への更新にはまる
Jettyのバージョンを更新したら、アプリケーションの設定にはまってしまったので記録として残す。
問題
- 稼働させていた既存のアプリケーションであるJenkinsやSCM-Managerをそのまま設定ファイルと共にコピーしたものの、Jetty起動時にエラーが発生してしまいデプロイに失敗する。エラーログは下記の通り。
2017-06-19 21:00:06.070:INFO:oejs.ServletHolder:main: unavailable java.lang.NullPointerException at org.eclipse.jetty.servlet.ServletHolder.initJspServlet(ServletHolder.java:700) at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:630) at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:422) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:892) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:349)
原因
- ログ出力の設定方法が途中のバージョンで変わっていたのが原因。設定を修正したところ、デプロイに成功し、正常に起動するようになった。
詳細
- Jetty本体に添付されているサンプルアプリや、公式ドキュメントを見る限り、Jetty 9.3.0まででのログ設定は下記が正しい。(実際、v9.1.5では、この設定で動作していた)
http://www.eclipse.org/jetty/documentation/9.3.0.v20150612/configuring-jetty-request-logs.html
...
- ところが、Jetty 9.3.xまでの何処かのバージョンでログ設定が変わったようだ。
http://www.eclipse.org/jetty/documentation/9.3.x/configuring-jetty-request-logs.html
...
- 上記のドキュメントは下記のコミットで更新されていた。
- タイトルのID番号から見て、該当するIssueは下記らしい。
- でも、このIssueではドキュメントとサンプルコードを修正して終わっており、問題の真因までは良く分からなかった。動作しない状況を回避できたので良しとするけれど、少々スッキリしない結末だった。
関連