我正在创建一个应该在Tomcat上运行的肥皂服务。
我在应用程序中使用Spring,类似于:
@Configuration
@EnableAutoConfiguration(exclude = ErrorMvcAutoConfiguration.class)
public class AppConfig {
}我的webservice (示例):
@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来解决此问题
问题:
我怎么才能阻止这一切?
发布于 2015-08-06 14:38:35
要在Spring中禁用ErrorPageFilter (用1.3.0.RELEASE进行测试),将以下bean添加到您的Spring配置中:
@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;
}发布于 2016-04-12 17:15:48
禁用ErrorPageFilter的最简单方法是:
@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);
}发布于 2016-05-09 03:56:00
@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;
}
}https://stackoverflow.com/questions/30170586
复制相似问题