19

[错误] pcsnPlayRequestHandler - 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)
4

4 回答 4

39

application.conf我不确切知道您的问题是什么,但是当我在尝试根据可能存在或不存在的环境变量设置配置时发现错误时遇到了这个神秘的、无用的错误。显然,异常的原因和它变得明显的地方相距甚远。

所以我建议检查你application.conf的配置错误。还要考虑可能为 Play 版本 < 2.5 构建的任何依赖项。基本上任何可能由于缺乏更好的术语而导致应用程序“错误初始化”的东西。

编辑:我刚刚发现了另一个属于“错误初始化”类别的错误原因。我更改了路由文件中的路由名称,但忘记更改模板中相应的反向路由。我觉得这应该更早地被发现并且有一个更直观的错误,但无论如何,在 or 中也要注意这个(或类似的东西application.confroutes

于 2016-05-11T02:15:20.043 回答
13

哎呀..java.lang.NoClassDefFoundError: Could not initialize class play.api.http.DefaultHttpErrorHandler$什么也没说是哪里出了问题。我遇到的一个这样的原因是我的配置属性中缺少/拼写错误并使用了 guice 注入器。

您可以在 prod 模式下运行您的应用程序以查看更多信息错误消息activator clean compile start

……

[信息] 完成包装。

(启动服务器。按 Ctrl+D 退出日志,服务器将保持在后台)

糟糕,无法启动服务器。配置错误:配置错误[storage.conf @ file:/myproject/mymodule/target/universal/stage/conf/storage.conf: 16: 无法解析替换为值:${storage.cluster.name}] .api.Configuration$.configError(Configuration.scala:154) ....

于 2016-05-26T04:51:10.773 回答
0

在我的情况下,以下依赖项是导致错误的原因

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

将 Google 云客户端库添加到 Play 2.5 时出现ChannelException

于 2017-02-03T06:01:26.873 回答
0

就我而言,这是文件中遗漏}application.conf:(。

于 2022-03-04T16:28:32.623 回答