web-dev-qa-db-ja.com

Play 2.5.3:不可解なエラーメッセージ:NettyJava.lang.NoClassDefFoundErrorで例外がキャッチされました

[エラー] p.c.s.n.PlayRequestHandler-Netty Java.lang.NoClassDefFoundErrorで例外がキャッチされました:クラスplay.api.http.DefaultHttpErrorHandler $を初期化できませんでした

エラーメッセージが表示され、アプリが開発モードで起動しません。

このエラーでは、何が悪かったのかについての詳細はわかりません。 logback.xmlのログレベルをDEBUGに変更しましたが、役に立ちませんでした。

問題を調査する方法について何か提案はありますか? 1週間前は問題なく動作し、それ以降、ソースと構成に変更はありませんでした。不明な理由で動作を停止しました。

編集1:より詳細なログを有効にするにはどうすればよいですか?そうでない場合、エラーの原因が完全に不明です。

編集2:タイトルを変更

 (Server started, use Ctrl+D to stop and go back to the console...)

  Warning: node.js detection failed, sbt will use the Rhino based Trireme JavaScript engine instead to run JavaScript assets compilation, which in some cases may be orders of magnitude slower than using no
  de.js.
  [error] p.c.s.n.PlayRequestHandler - Exception caught in Netty
  Java.lang.NoClassDefFoundError: Could not initialize class play.api.http.DefaultHttpErrorHandler$
          at play.core.server.Server$class.logExceptionAndGetResult$1(Server.scala:45)
          at play.core.server.Server$class.getHandlerFor(Server.scala:65)
          at play.core.server.NettyServer.getHandlerFor(NettyServer.scala:47)
          at play.core.server.netty.PlayRequestHandler.handle(PlayRequestHandler.scala:82)
          at play.core.server.netty.PlayRequestHandler.channelRead(PlayRequestHandler.scala:163)
          at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.Java:292)
          at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.Java:278)
          at com.typesafe.netty.http.HttpStreamsHandler.channelRead(HttpStreamsHandler.Java:129)
          at com.typesafe.netty.http.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.Java:96)
          at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.Java:292)
  [error] p.c.s.n.PlayRequestHandler - Exception caught in Netty
  Java.lang.NoClassDefFoundError: Could not initialize class play.api.http.DefaultHttpErrorHandler$
          at play.core.server.Server$class.logExceptionAndGetResult$1(Server.scala:45)
          at play.core.server.Server$class.getHandlerFor(Server.scala:65)
          at play.core.server.NettyServer.getHandlerFor(NettyServer.scala:47)
          at play.core.server.netty.PlayRequestHandler.handle(PlayRequestHandler.scala:82)
          at play.core.server.netty.PlayRequestHandler.channelRead(PlayRequestHandler.scala:163)
          at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.Java:292)
          at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.Java:278)
          at com.typesafe.netty.http.HttpStreamsHandler.channelRead(HttpStreamsHandler.Java:129)
          at com.typesafe.netty.http.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.Java:96)
          at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.Java:292)
19
Mike Pakhomov

あなたの問題が何であるか正確にはわかりませんが、application.confでエラーを発見したときに、この不可解で役に立たないエラーが発生しました。環境変数に基づいて構成を設定しようとしたところ、そうでない場合があります。そこ。明らかに、例外の原因とそれが明らかになる場所はかなり離れています。

したがって、application.confの構成の誤りを確認することをお勧めします。 Playバージョン<2.5用に構築された可能性のある依存関係も考慮してください。基本的に、より適切な用語がないためにアプリケーションが「誤って初期化」される原因となる可能性のあるものすべて。

編集:「初期化ミス」のカテゴリに分類されるこのエラーの別の原因を発見しました。ルートファイルでルートの名前を変更しましたが、テンプレートで対応する逆ルートを変更するのを忘れました。これはもっと早く、より直感的なエラーでキャッチされるべきだと思いますが、それにもかかわらず、application.confまたはroutesでもこれ(または同様のもの)に注意してください。

39
Vidya

おっと.. Java.lang.NoClassDefFoundError: Could not initialize class play.api.http.DefaultHttpErrorHandler$何が悪かったのか何も教えてくれません。私が遭遇したそのような理由の1つは、構成プロパティに欠落/タイプミスがあり、guiceインジェクターを使用した場合です。

アプリをprodモードで実行すると、より有益なエラーメッセージが表示されますactivator clean compile start

..。

[情報]パッケージングが完了しました。

(サーバーを起動します。Ctrl+ Dを入力してログを終了します。サーバーはバックグラウンドのままになります)

おっと、サーバーを起動できません。構成エラー:構成エラー[storage.conf @ file:/myproject/mymodule/target/universal/stage/conf/storage.conf:16:置換を値に解決できませんでした:$ {storage.cluster.name}] at play .api.Configuration $ .configError(Configuration.scala:154)..。

13
Deepak

私の場合、以下の依存関係がエラーの原因でした

libraryDependencies += "com.google.cloud" % "gcloud-Java-storage" % "0.2.5"

ソース GoogleクラウドクライアントライブラリをPlay 2.5に追加するとChannelExceptionが発生します

0
binshi