【发布时间】:2026-01-03 10:35:01
【问题描述】:
我在 Scala 中使用 Play 来开发一个网站。我在application.conf 文件中添加了以下行,以便包含默认错误处理:
play.http.errorHandler = play.api.http.HtmlOrJsonHttpErrorHandler
我是根据official documentation 的建议完成的。但是,当我添加此行时,出现以下错误:
play.api.PlayException: Cannot load play.http.errorHandler[play.http.errorHandler [play.api.http.HtmlOrJsonHttpErrorHandler] was not loaded.]
at play.utils.Reflect$.loadClass$1(Reflect.scala:111)
at play.utils.Reflect$.configuredClass(Reflect.scala:124)
at play.utils.Reflect$.bindingsFromConfiguration(Reflect.scala:50)
at play.api.http.HttpErrorHandler$.bindingsFromConfiguration(HttpErrorHandler.scala:54)
at play.api.inject.BuiltinModule$$anonfun$$lessinit$greater$1.$anonfun$new$2(BuiltinModule.scala:85)
at play.api.inject.BuiltinModule$$anonfun$$lessinit$greater$1.$anonfun$new$1(BuiltinModule.scala:35)
at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:241)
at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
Caused by: java.lang.ClassNotFoundException: play.api.http.HtmlOrJsonHttpErrorHandler
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at play.utils.Reflect$.loadClass$1(Reflect.scala:105)
at play.utils.Reflect$.configuredClass(Reflect.scala:124)
at play.utils.Reflect$.bindingsFromConfiguration(Reflect.scala:50)
at play.api.http.HttpErrorHandler$.bindingsFromConfiguration(HttpErrorHandler.scala:54)
at play.api.inject.BuiltinModule$$anonfun$$lessinit$greater$1.$anonfun$new$2(BuiltinModule.scala:85)
at play.api.inject.BuiltinModule$$anonfun$$lessinit$greater$1.$anonfun$new$1(BuiltinModule.scala:35)
at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:241)
知道为什么会发生这种情况以及如何解决吗?
【问题讨论】:
-
HtmlOrJsonHttpErrorHandler从 Play 2.7 开始可用。您使用的是哪个版本的 Play? -
在哪里可以轻松看到这个?我在 build.sbt 文件
version = 2.6.x中找到了这个。 -
我还发现了这个链接:playframework.com/documentation/2.4.x/ScalaErrorHandling 这是一个早期版本,他们也使用默认的错误处理程序。
标签: scala playframework playframework-2.3