Воспроизвести 2.5.3: загадочное сообщение об ошибке: исключение, обнаруженное в Netty java.lang.NoClassDefFoundError

[ошибка] p.c.s.n.PlayRequestHandler — исключение, обнаруженное в Netty java.lang.NoClassDefFoundError: не удалось инициализировать класс play.api.http.DefaultHttpErrorHandler$ в

Я получаю сообщение об ошибке, и мое приложение не запускается в режиме разработки.

Ошибка не дает мне никаких подробностей о том, что пошло не так. Я изменил уровень журнала в logback.xml на DEBUG, но это не помогло.

Любые предложения, как исследовать проблему? Неделю назад все работало нормально и с тех пор никаких изменений в исходниках и конфигурации не было. Он перестал работать по неизвестной причине.

Edit1: Как включить более подробное ведение журнала? Иначе совершенно непонятно, откуда берется ошибка.

Edit2: изменено название

 (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)

person Mike Pakhomov    schedule 10.05.2016    source источник
comment
этот вопрос может помочь также я думаю, что первая строка очень понятна.   -  person AME    schedule 10.05.2016
comment
@ PiNg2Eiw да, это ясно. но это просто предупреждение. Мне нужно выяснить, почему я получаю p.c.s.n.PlayRequestHandler — исключение, пойманное в Netty   -  person Mike Pakhomov    schedule 10.05.2016
comment
Вы пробовали «sbt clean»?   -  person rethab    schedule 10.05.2016
comment
@ретаб. Да, у меня есть. Кроме того, я удалил все файлы сборки вручную. Тем не менее, не повезло.   -  person Mike Pakhomov    schedule 10.05.2016
comment
Вы запускаете свой сервер с помощью activator run?   -  person kag0    schedule 18.08.2016


Ответы (3)


Я не знаю точно, в чем ваша проблема, но я столкнулся с этой загадочной, бесполезной ошибкой, когда обнаружил ошибку в моем application.conf, где я пытался установить конфигурацию на основе переменной среды, которая может быть или не быть там. Ясно, что причина исключения и место, где оно проявляется, довольно далеки друг от друга.

Поэтому я бы посоветовал проверить ваш application.conf на наличие неправильной конфигурации. Учитывайте также любые зависимости, которые могли быть созданы для версий Play ‹ 2.5. В основном все, что может привести к «неправильной инициализации» приложения из-за отсутствия лучшего термина.

РЕДАКТИРОВАТЬ: я только что обнаружил еще одну причину этой ошибки, которая подпадает под категорию «неправильная инициализация». Я изменил имя маршрута в своем файле маршрутов, но забыл изменить соответствующий обратный маршрут в своем шаблоне. Я чувствую, что это должно быть обнаружено раньше и с более интуитивной ошибкой, но, тем не менее, обратите внимание на это (или что-то подобное) также в application.conf или routes.

person Vidya    schedule 11.05.2016
comment
Ударил это только сейчас, когда я перешел с 2.4 на 2.5, и для меня это была опечатка (ошибочный регистр) строки (имя класса) в application.conf для меня. - person Techmag; 12.05.2016
comment
Подтверждено: я попытался добавить глобальную переменную среды в application.conf, и это просто приведет к сбою приложения Play, если вы не установите эту переменную. - person N.Martignole; 12.06.2016
comment
подтверждено: любая опечатка в application.conf вызывает эту ошибку. проверьте, что каждое значение параметра похоже на значение - person beerstorm; 02.08.2016
comment
Подтверждено также. В моем случае конкретная проблема заключается в том, что я пытался переопределить переменную среды через ${?ENV_VAR}, но забыл вопросительный знак. - person David; 26.11.2016

Упс.. java.lang.NoClassDefFoundError: Could not initialize class play.api.http.DefaultHttpErrorHandler$ ничего не говорит о том, что пошло не так. Одна из таких причин, с которой я столкнулся, - это когда у меня были опечатки в моих свойствах конфигурации и я использовал инжекторы guice.

Вы можете запустить приложение в рабочем режиме, чтобы увидеть более информативное сообщение об ошибке activator clean compile start.

....

[info] Готова упаковка.

(Запуск сервера. Нажмите Ctrl+D для выхода из логов, сервер останется в фоновом режиме)

Ой, не могу запустить сервер. Ошибка конфигурации: ошибка конфигурации [storage.conf @ file:/myproject/mymodule/target/universal/stage/conf/storage.conf: 16: не удалось разрешить замену на значение: ${storage.cluster.name}] в игре .api.Configuration$.configError(Configuration.scala:154) ....

person Deepak    schedule 26.05.2016

В моем случае приведенная ниже зависимость была причиной ошибки

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

Источник Получение ChannelException при добавлении облачного клиента Google библиотека для Play 2.5

person binshi    schedule 03.02.2017