首页 > 解决方案 > play framework 2.5.9 启动时logback Filter的classNotFound异常

问题描述

我正在为 logback 编写自己的过滤器类,如下所示。然后我在 logback.xml 中调用它,如下所示:

<filter class="utils.LogbackFilter" />

我将示例 Java 代码转换为 Scala 并注入了类(注入部分是我最初认为的问题)。我的代码如下:

class LogbackFilter @Inject() extends Filter[ILoggingEvent] {

  override def decide(event: ILoggingEvent): FilterReply = {
    if (event.getLoggerName.contains("access")) {
      FilterReply.ACCEPT
    } else {
      FilterReply.DENY
    }
  }
}

每次我编译并运行这个 Play Framework 项目时,我都会得到:

ERROR in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - 
Could not create component [filter] of type [utils.LogbackFilter] 
java.lang.ClassNotFoundException: utils.LogbackFilter

有一个 LogbackFilter.class 在:

website-2016/target/scala-2.11/classes/utils

我不知道这是 logback 问题、guice 问题、Play 问题还是什么。

标签: playframeworkguicelogbackplayframework-2.5

解决方案


在我发布之后,Stackoverflow 显示了一些相关的问题,其中一个有答案

而不是启动 Play withactivator run我试过了activator start,它奏效了。我将把它留在这里以供后代使用。


推荐阅读