首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Spring中禁用ErrorPageFilter?

如何在Spring中禁用ErrorPageFilter?
EN

Stack Overflow用户
提问于 2015-05-11 14:38:33
回答 6查看 73.5K关注 0票数 24

我正在创建一个应该在Tomcat上运行的肥皂服务。

我在应用程序中使用Spring,类似于:

代码语言:javascript
运行
复制
@Configuration
@EnableAutoConfiguration(exclude = ErrorMvcAutoConfiguration.class)
public class AppConfig {
}

我的webservice (示例):

代码语言:javascript
运行
复制
@Component
@WebService
public class MyWebservice {

    @WebMethod
    @WebResult
    public String test() {
        throw new MyException();
    }
}

@WebFault
public class MyException extends Exception {
}

问题:

每当我在webservice类中抛出异常时,服务器上记录了以下消息:

ErrorPageFilter:不能转发到请求/服务/MyWebservice的错误页面,因为响应已经提交。因此,响应可能有错误的状态代码。如果您的应用程序运行在com.ibm.ws.webcontainer.invokeFlushAfterService应用服务器上,则可以通过将WebSphere设置为false来解决此问题

问题:

我怎么才能阻止这一切?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-08-06 14:38:35

要在Spring中禁用ErrorPageFilter (用1.3.0.RELEASE进行测试),将以下bean添加到您的Spring配置中:

代码语言:javascript
运行
复制
@Bean
public ErrorPageFilter errorPageFilter() {
    return new ErrorPageFilter();
}

@Bean
public FilterRegistrationBean disableSpringBootErrorFilter(ErrorPageFilter filter) {
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
    filterRegistrationBean.setFilter(filter);
    filterRegistrationBean.setEnabled(false);
    return filterRegistrationBean;
}
票数 25
EN

Stack Overflow用户

发布于 2016-04-12 17:15:48

禁用ErrorPageFilter的最简单方法是:

代码语言:javascript
运行
复制
@SpringBootApplication
public class App extends SpringBootServletInitializer {

public App() {
    super();
    setRegisterErrorPageFilter(false); // <- this one
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(App.class);
}

public static void main(String[] args) {
    SpringApplication.run(App.class, args);
}
票数 17
EN

Stack Overflow用户

发布于 2016-05-09 03:56:00

代码语言:javascript
运行
复制
    @SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        //set register error pagefilter false
        setRegisterErrorPageFilter(false);

        builder.sources(MyApplication.class);
        return builder;
    }

}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30170586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档