web-dev-qa-db-de.com

Wiedergabe 2.5.3: Kryptische Fehlermeldung: Ausnahme in Netty Java.lang.NoClassDefFoundError abgefangen

[error] p.c.s.n.PlayRequestHandler - Ausnahmebedingung in Netty Java.lang.NoClassDefFoundError: Die Klasse play.api.http.DefaultHttpErrorHandler $ konnte nicht initialisiert werden

Ich erhalte eine Fehlermeldung und meine App startet nicht im Dev-Modus.

Der Fehler gibt mir keine Details darüber, was schiefgegangen ist. Ich habe den Log-Level in logback.xml in DEBUG geändert, aber es hat nicht geholfen. 

Irgendwelche Vorschläge, wie man das Problem untersuchen kann? Vor einer Woche hat es gut funktioniert und seitdem gab es keine Änderungen in den Quellen und der Konfiguration. Aus einem unbekannten Grund hörte es auf zu arbeiten. 

Edit1: Wie kann ich die ausführlichere Protokollierung aktivieren? Ansonsten ist absolut unklar, woher der Fehler kommt.

Edit2: Der Titel wurde geändert

 (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

Ich weiß nicht genau, was Ihr Problem ist, aber ich bin auf diesen kryptischen, nicht hilfreichen Fehler gestoßen, als ich einen Fehler in meinem application.conf entdeckte, in dem ich versuchte, eine Konfiguration basierend auf einer Umgebungsvariablen festzulegen, die möglicherweise vorhanden ist oder nicht. Die Ursache der Ausnahme und der Ort, an dem sie sichtbar wird, liegen eindeutig weit auseinander.

Ich würde also vorschlagen, Ihren application.conf auf eine falsche Konfiguration zu überprüfen. Berücksichtigen Sie auch alle Abhängigkeiten, die möglicherweise für Play-Versionen <2.5 erstellt wurden. Grundsätzlich alles, was dazu führen könnte, dass der Antrag mangels eines besseren Begriffs "falsch initialisiert" wird.

BEARBEITEN: Ich habe gerade eine andere Ursache für diesen Fehler entdeckt, die unter die Kategorie "Fehlinitialisierung" fällt. Ich habe den Namen einer Route in meiner Routendatei geändert, habe aber vergessen, die entsprechende umgekehrte Route in meiner Vorlage zu ändern. Ich denke, dass dies früher und mit einem intuitiveren Fehler gefangen werden sollte, aber achten Sie auf dieses (oder etwas ähnliches) ebenso in application.conf oder routes.

39
Vidya

Ups .. Java.lang.NoClassDefFoundError: Could not initialize class play.api.http.DefaultHttpErrorHandler$ sagt nichts aus, was schief gelaufen ist. Ein solcher Grund, dem ich begegnet bin, ist, dass ich/meine Tippeinstellungen in meinen Konfigurationseigenschaften vermisse und Guice-Injektoren verwende.

Sie können Ihre App im Prod-Modus ausführen, um die aussagekräftigere Fehlermeldung activator clean compile start anzuzeigen.

....

[info] Fertig verpackt.

(Starten des Servers. Geben Sie zum Verlassen der Protokolle Strg + D ein. Der Server bleibt im Hintergrund.)

Ups, Server kann nicht gestartet werden. Konfigurationsfehler: Konfigurationsfehler [storage.conf @ file: /myproject/mymodule/target/universal/stage/conf/storage.conf: 16: Konnte die Ersetzung nicht in einen Wert auflösen : $ {storage.cluster.name}] bei play.api.Configuration $ .configError (Configuration.scala: 154) .... 

13
Deepak

In meinem Fall war die Abhängigkeit von unten die Ursache des Fehlers

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

Source Holen von ChannelException beim Hinzufügen der Google Cloud-Client-Bibliothek zu Play 2.5

0
binshi