我有一个运行良好的Spring Boot MVC应用程序。
我尝试按照一些有关集成Spring Security来处理用户登录的教程,但是一旦我创建了下面的类,应用程序就会开始生成Broken pipe错误。
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/","/home").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
我已经尝试了许多不同的教程,认为原始教程可能有一些错误,但它仍然在发生。
2015-11-25 09:39:57.593 INFO 64614 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2015-11-25 09:39:57.620 INFO 64614 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 27 ms
2015-11-25 09:39:58.970 ERROR 64614 --- [nio-8080-exec-2] o.s.boot.context.web.ErrorPageFilter : Cannot forward to error page for request [/login] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
我无法弄清楚造成这种情况的原因。
我在本地Tomcat实例上部署此应用程序。
要确认,该应用程序似乎仍然正常工作,我不确定这个错误是否需要担心?
答案 0 :(得分:0)
我有同样的错误,但我认为这种错误可能取决于很多事情。我也使用带有angularJs堆栈的spring-boot。
当我尝试等待请求的答案(花时间)到我的spring-boot应用程序时,我遇到同样的问题。
我把我的解决方案放在这里,如果它可以帮助某人:
对我来说,问题来自 Apache Httpd 配置,因为我把我的应用程序放在apache服务器后面。在我的情况下,当apache超过默认超时(我认为300秒)时,apache关闭连接。当发生这种情况时,你的弹簧启动显示broken pipe
错误。
要解决此问题,您只需在apache httpd配置文件的TimeOut yourValueInSecond
中添加httpd.conf
即可。
在更改配置文件之前测试是否真的是由于apache httpd服务器直接在tomcat服务器上发送请求。