2014-06-17 2 views
2

WebSphere Liberty Core (WLC : 8.5.5.1 (wlp-1.0.3.20130510-0831))를 사용할 때 로그에 다음 오류가 무작위로 표시됩니다. 다른 응용 프로그램 서버에서는 발생하지 않습니다. 나는 코드가 어디에서 발생하는지 모르겠다. Spring 3.1.3이 무언가를 잘못하려하고있는 것처럼 보인다. 아무도 이것을 다루지 못했습니까?WebSphere Liberty Core throw java.io.IOException : 스트림이 닫힘

[03/06/14 20 : 04 : 33 232 BST] 000000cb com.ibm.ws.webcontainer.util.ApplicationErrorUtils E SRVE0777E : 애플리케이션 클래스 의해 발생한 예외 'com.ibm.wsspi .http.HttpOutputStream.validate 187 ' 때 java.io.IOException : 스트림 com.ibm.wsspi.http에서 com.ibm.wsspi.http.HttpOutputStream.validate (HttpOutputStream.java:187) 폐쇄된다. HttpOutputStream.flush (HttpOutputStream.java:555) at com.ibm.ws.webcontainer.osgi.response.WCOutputStream.flush (WCOutputStream.java:213) at org.springframework에서 0 org.springframework.security.web.context.SaveContextOnUpdateOrErrorResponseWrapper $ SaveContextServletOutputStream.flush org.springframework.http.converter.AbstractHttpMessageConverter.write (AbstractHttpMessageConverter.java:180)에서 (SaveContextOnUpdateOrErrorResponseWrapper.java:354) .web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters (AbstractMessageConverterMethodProcessor.java:137) 에서 org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters (AbstractMessageConverterMethodProcessor.java:80)에서 org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnVal UE org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue (HandlerMethodReturnValueHandlerComposite.java:69)에서 (RequestResponseBodyMethodProcessor.java:94) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod 에서 . invokeAndHandle org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:604)에서 (ServletInvocableHandlerMethod.java:118) org.springframework.web.servlet.mvc.method 에서. annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:565) at org.springframework.web.servlet.mvc.method.Abs tractHandlerMethodAdapter.handle org.springframework.web.servlet.DispatcherServlet.doService에서 org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:923)에서 (AbstractHandlerMethodAdapter.java:80) (DispatcherServlet.java : org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:778)에서 javax.servlet에서 에서 org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:882)에서 852) . http.HttpServlet.service (HttpServlet.java:575) at javax.servlet.http.HttpServlet.service (HttpServlet.java:668) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service (ServletWrapper.java : 124 0) com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest (ServletWrapper.java:443에서 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest (ServletWrapper.java:760) AT)에서 com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget (WebAppFilterChain.자바 : 127) com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate (DelegatingFilterProxy.java:346에서 (WebAppFilterChain.java:88) )에서의 com.ibm.ws에서 org.springframework.web.filter.DelegatingFilterProxy.doFilter com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter (FilterInstanceWrapper.java:194)에서 (DelegatingFilterProxy.java:259) (웹 애플 리케이션. com.ibm에서 org.springframework.web.filter.DelegatingFilterProxy.doFilter com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter (FilterInstanceWrapper.java:194)에서 (DelegatingFilterProxy.java:259) 에서 1,363,210 org.springframework.web에서 .ws.webcontainer.filter.WebAppFilterChain.doFilter net.sf.ehcache.constructs.web.filter.Filter.doFilter (Filter.java:86)에서 (WebAppFilterChain.java:85) com.ibm.ws.w에서 .filter.DelegatingFilterProxy.invokeDelegate org.springframework.web.filter.DelegatingFilterProxy.doFilter (DelegatingFilterProxy.java:259)에서 (DelegatingFilterProxy.java:346) ebcontainer.filter.FilterInstanceWrapper.doFilter org.springframework.web.filter.DelegatingFilterProxy에서 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter (WebAppFilterChain.java:85)에서 (FilterInstanceWrapper.java:194) . invokeDelegate com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter에서 org.springframework.web.filter.DelegatingFilterProxy.doFilter (DelegatingFilterProxy.java:259)에서 (DelegatingFilterProxy.java:346) (FilterInstanceWrapper.java : 194) (웹 사이트 : 0122) com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter에서 .invokeDelegate org.springframework.web.filter.DelegatingFilterProxy.doFilter (DelegatingFilterProxy.java:259)에서 (DelegatingFilterProxy.java:346) (FilterInstanceWrapper.java : 에서 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate (DelegatingFilterProxy.java:346에서 (WebAppFilterChain.java:85) ) 194) (FilteringInstanceW) rapper.java:194) org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter에서 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter (WebAppFilterChain.java:85) (FilterChainProxy.java에서 : org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter (FilterSecurityInterceptor.java 330 org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke (FilterSecurityInterceptor.java:118 AT) ) : 84) at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) at org.springframework.security.web.access. org.springframework.security.web.session.SessionManagementFilter.doFilter에서 org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) 에서 ExceptionTranslationFilter.doFilter (ExceptionTranslationFilter.java:113) ( org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter에서 org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) (AnonymousAuthenticationFilter.java에서 SessionManagementFilter.java:103) : 113) at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) at 0 에서org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter (RememberMeAuthenticationFilter.java:139)에서 (FilterChainProxy.java:342) 조직 org.springframework.security에서 .springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter (SecurityContextHolderAwareRequestFilter.java:54)에서 (FilterChainProxy.java:342) .web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) at org.springframework.security.web org.springframework.security.web.authentication.www에서 org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) 에서 .savedrequest.RequestCacheAwareFilter.doFilter (RequestCacheAwareFilter.java:45) org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter에서 org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) 에서 .BasicAuthenticationFilter.doFilter (BasicAuthenticationFilter.java:150) .doFilter (DefaultLoginPageGeneratingFilter.java:91) at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) 에서 org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) 에서 org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter (AbstractAuthenticationProcessingFilter.java:183) 에서닷컴 .landg.uxp.poc.security.HttpRequestResponseContextFilter.doFilterInternal (HttpRequestResponseContextFilter.java:37) org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:76)에서 org.springframework.security.web에서 .FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) at org.springframework.security.web.a org.springframework.security.web.authentication에서 org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) 에서 uthentication.preauth.AbstractPreAuthenticatedProcessingFilter.doFilter (AbstractPreAuthenticatedProcessingFilter.java:94) . org.springframework.security.web.context.SecurityContextPersistenceFilter에서 org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:342) 에서 logout.LogoutFilter.doFilter (LogoutFilter.java:105) . doFilter (SecurityContextPersistenceFilter.java:87) at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.자바 : 342) org.springframework.security.web.FilterChainProxy.doFilter (FilterChainProxy.java:160) 에서 org.springframework.security.web.FilterChainProxy.doFilterInternal (FilterChainProxy.java:192) 에서 에서 조직도 com.ibm.ws.webcontainer.filter에서 .springframework.web.filter.DelegatingFilterProxy.invokeDelegate org.springframework.web.filter.DelegatingFilterProxy.doFilter (DelegatingFilterProxy.java:259)에서 (DelegatingFilterProxy.java:346) .FilterInstanceWrapper.doFilter (FilterInstanceWrapper.java:194) ( ) com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter (WebAppFilterChain.java:85) org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:76) 에서 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:88) 10에서 com.ibm.ws com.ibm.ws.webcontainer.filter에서 .webcontainer.filter.FilterInstanceWrapper.doFilter com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter (WebAppFilterChain.java:85)에서 (FilterInstanceWrapper.java:194) .WebAppFilterManager.doFilter (WebAppFilterManager.java:949) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters (WebAppFilterManager.java:1029) at 닷컴에서 com.ibm.ws.webcontainer.osgi.DynamicVirtualHost $ 2.handleRequest (DynamicVirtualHost.java:282) 에서 com.ibm.ws.webcontainer.webapp.WebApp.handleRequest (WebApp.java:4499) . com.ibm.ws.http에서 com.ibm.ws.webcontainer.osgi.DynamicVirtualHost $의 2.run에서 ibm.ws.webcontainer.WebContainer.handleRequest (WebContainer.java:954) (DynamicVirtualHost.java:252) .dispatcher.internal.channel.HttpDispatcherLink $ TaskWrapper.run (HttpDispatcherLink.java:584) at com.ibm.ws.threading.internal.Worker.executeWork (Worker.java:439) at com.ibm.ws.threading .internal.Worker.run (Worker.java:421) at java.lang.Thread.run (Thread.java:773)

+0

관련 문제는 다음과 같습니다. https://groups.google.com/forum/#!msg/javamelody/kX31sRTFrHE/Rfxr7rJCvjkJ –

답변

3

발견 된 이유. Spring Web 3.1.x에는 스트림을 두 번 닫으려고하는 버그가있다. 버그는 Spring Web 3.2.x에서 수정되었습니다. 대부분의 응용 프로그램 서버는이 상황에서 오류를 로그하지 않지만 (실제로는 완전히 무해하므로) WebSphere Liberty가 괴롭힘.

1

OpenLiberty에서도 같은 예외가 발생했습니다. 내 실수는 @FormParam으로 매개 변수를 접두사로 사용하지 않고 @POST JAX-RS 리소스를 정의하는 것이 었습니다.

관련 문제