Java Play Framework 2.7-处理错误时为什么过滤器不工作

Java Play Framework 2.7-处理错误时为什么过滤器不工作,java,filter,error-handling,playframework,Java,Filter,Error Handling,Playframework,我正在尝试从2.6版迁移到2.7版 在我的代码中,我有一个自定义过滤器,它为CORS的结果添加特定的头。这里没什么特别的 在播放2.7之前,我通过Action composition添加了标题,但是由于我们不再能够轻松地访问结果(只访问请求),我发现使用过滤器会更容易(我希望所有调用都使用它,所以这是有意义的) 我的问题是,在Play2.7中,当代码中出现异常时,会调用自定义过滤器,但不会应用。它应用于每个没有进入ErrorHandler的调用。这使得前端无法使用结果,因为它不包含所需的头 所以

我正在尝试从2.6版迁移到2.7版

在我的代码中,我有一个自定义过滤器,它为CORS的结果添加特定的头。这里没什么特别的

在播放2.7之前,我通过Action composition添加了标题,但是由于我们不再能够轻松地访问结果(只访问请求),我发现使用过滤器会更容易(我希望所有调用都使用它,所以这是有意义的)

我的问题是,在Play2.7中,当代码中出现异常时,会调用自定义过滤器,但不会应用。它应用于每个没有进入ErrorHandler的调用。这使得前端无法使用结果,因为它不包含所需的头

所以我的问题是:即使出现错误/异常,我们如何确保调用并应用过滤器

以下是过滤器:

@Singleton
公共类AccessHeaderFilter扩展了EssentialFilter{
私人最终执行人;
私有最终配置;
@注入
public AccessHeaderFilter(Executor exec,配置){
this.exec=exec;
this.configuration=配置;
}
@凌驾
公共要素申请(要素下一步){
返回必要的(请求->
下一步。申请(请求)
.map(结果->
结果.withHeader(Http.HeaderNames.ACCESS\u CONTROL\u ALLOW\u ORIGIN,configuration.getString(“front-end.url”))
.withHeader(Http.HeaderNames.ACCESS\u CONTROL\u REQUEST\u方法,“GET、POST、PUT、DELETE、OPTIONS”)
.withHeader(Http.HeaderNames.ACCESS\u CONTROL\u ALLOW\u头,“缓存控制,X请求,带,接受,内容类型”)
.withHeader(Http.HeaderNames.ACCESS\u CONTROL\u ALLOW\u凭证,“true”)
.withHeader(Http.HeaderNames.CACHE_控件,“public”),
(行政长官)
);
}
}
真实场景:用户尝试使用已使用的名称创建资源。我抛出一个FeedbackException,它将返回一个包含元异常详细信息的HTTP200,前端使用它来显示一个有趣的弹出窗口。在播放2.7之前,响应将包含标题。现在没有了

知道如何确保即使在触发错误处理程序时也应用过滤器吗