Hatena::ブログ(Diary)

Basic このページをアンテナに追加 RSSフィード

2017-06-19

Jetty 9.4.6への更新にはまる

| 23:24 | Jetty 9.4.6への更新にはまるを含むブックマーク Jetty 9.4.6への更新にはまるのブックマークコメント

Jettyのバージョンを更新したら、アプリケーションの設定にはまってしまったので記録として残す。

動作環境

  • macOS 10.12.5 (Sierra)
  • Java SE 8 Update 131
  • Jetty v9.1.5 (更新前)
  • Jetty v9.4.6 (更新後)

問題

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では、この設定で動作していた)

<Configure class="org.eclipse.jetty.webapp.WebAppContext">

...

<Set name="handler">

<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">

http://www.eclipse.org/jetty/documentation/9.3.0.v20150612/configuring-jetty-request-logs.html
  • ところが、Jetty 9.3.xまでの何処かのバージョンでログ設定が変わったようだ。

<Configure class="org.eclipse.jetty.webapp.WebAppContext">

...

<Call name="insertHandler">

<Arg>

<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">

http://www.eclipse.org/jetty/documentation/9.3.x/configuring-jetty-request-logs.html


関連

トラックバック - http://d.hatena.ne.jp/rabbit2go/20170619/1497882296