【发布时间】:2016-08-06 11:15:45
【问题描述】:
我正在尝试创建一个基于Play documentation 的日志过滤器,但我不知道发生了什么。
我收到了 thios 错误消息:
Unexpected exception ProvisionException: Unable to provision,参见 以下错误:
1) 注入构造函数时出错,java.lang.ClassCastException: [Ljava.lang.Object;不能转换为 [Lplay.mvc.EssentialFilter;在 Filters.(Filters.scala:11) while locating Filters while 定位 play.http.HttpFilters 对于 play.api.http.JavaHttpFiltersAdapter.(HttpFilters.scala:63)
中的参数 0 定位时 play.api.http.JavaHttpFiltersAdapter 定位时 play.api.http.HttpFilters 对于 play.api.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:200) 中的参数 3 同时定位 play.api.http.JavaCompatibleHttpRequestHandler 而 定位 play.api.http.HttpRequestHandler 对于 play.api.DefaultApplication.(Application.scala:221) 中的参数 4 play.api.DefaultApplication.class(Application.scala:221) 而 在定位时定位 play.api.DefaultApplication play.api.Application1 个错误
但我的 LoggingFilter 扩展了 EssentialFilter(我复制了文档代码)。 我需要为 Guice 绑定一些东西吗?
这是我的built.sbt:
name := """abc"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
jdbc,
cache,
ws,
filters,
"org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % Test,
"org.webjars" %% "webjars-play" % "2.5.0",
"org.webjars" % "react" % "0.13.1"
)
resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
routesGenerator := InjectedRoutesGenerator
这里是我的 plugins.sbt :
// The Typesafe repository
resolvers += "Typesafe repository" at "https://repo.typesafe.com/typesafe/releases/"
// Eclpise Plugin
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.4")
// web plugins
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
addSbtPlugin("org.irundaia.sbt" % "sbt-sassify" % "1.4.2")
// transform JSX assets to js
addSbtPlugin("com.github.ddispaltro" % "sbt-reactjs" % "0.5.0")
【问题讨论】:
-
你把你的类放在根包里了吗?如果没有,你应该在你的 conf 中添加这个:
play.http.filters=com.example.MyFilters。另外,检查您的导入是否正确.. -
是的,insan-e,我做了与文档中解释的相同的操作:application.conf 中的“play.http.filters = Filters”和 app/ 文件夹中的“Filters”类。
-
我也有这个问题。我正在使用 java 并且我完全按照文档进行操作
-
有没有人找到解决这个问题的方法。我有完全相同的问题。按照文档添加 CORSFilter。 playframework.com/documentation/2.5.x/CorsFilter
标签: scala playframework-2.0 code-injection