You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PlayFramework Java环境下请求/响应日志配置失败排查

问题分析与修复方案

你的过滤器无法正常工作,核心问题出在两个地方:

1. HttpFilters构造函数缺少@Inject注解

Guice依赖注入框架要求,需要注入依赖的类必须有带@Inject注解的构造函数,或者无参非私有构造函数。你的HttpFilters类构造函数没有标记@Inject,导致Guice无法自动注入EssentialLoggingFilter实例,直接触发了第一个错误。

2. 多余的命名绑定配置

你添加的bind(EssentialLoggingFilter.class).annotatedWith(Names.named("custom-http-filters"));完全没必要,而且和实际代码逻辑冲突:你的HttpFilters构造函数需要的是不带命名注解的EssentialLoggingFilter实例,但这个绑定只创建了带命名标记的实例,Guice找不到匹配的无注解绑定,因此抛出第二个错误。


修复步骤

步骤1:修改HttpFilters类,添加@Inject注解

更新后的HttpFilters代码:

package filters;

import play.http.DefaultHttpFilters;
import javax.inject.Inject;

public class HttpFilters extends DefaultHttpFilters {
    @Inject
    public HttpFilters(EssentialLoggingFilter filter) {
        super(filter);
    }
}

步骤2:删除多余的绑定配置

直接删除模块中这一行代码:

bind(EssentialLoggingFilter.class).annotatedWith(Names.named("custom-http-filters"));

步骤3:验证application.conf配置

确保play.http.filters = "filters.HttpFilters"配置正确,类路径和包名完全匹配。


完成以上修改后,Guice就能正确识别并注入过滤器依赖,你的请求响应日志功能就能正常工作了。

内容的提问来源于stack exchange,提问作者Alter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:27:35