playframework - 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 问题还是什么。
解决方案
在我发布之后,Stackoverflow 显示了一些相关的问题,其中一个有答案。
而不是启动 Play withactivator run
我试过了activator start
,它奏效了。我将把它留在这里以供后代使用。
推荐阅读
- directus - Directus 字段类型设置
- android - 使用 RxJava 改进视图模型的响应以在片段中观察
- vba - 更改列表框的样式
- javascript - 如何获取元素的当前滚动位置?
- java - Android(Java):左右滑动浏览列表(如RecyclerView),一张一张
- reactjs - AWS 中的加速传输功能放大存储以进行反应
- python - 如何将多列转换为单列?
- angular - 如何从 Firestore 上的谷歌地图保存多个起点和终点/标记并列出它们
- .net-core - dotnet 还原失败并出现错误 MSB4062:无法加载“CheckForImplicitPackageReferenceOverrides”任务
- spring-boot - Springboot中的Birt