Установленное соединение было прервано программным обеспечением на вашем хост-компьютере Tomcat JacksonJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Установленное соединение было прервано программным обеспечением на вашем хост-компьютере Tomcat Jackson

Сообщение Anonymous »

Ниже приведена трассировка стека, которую я получаю, когда моя служба отдыха пытается получить большой набор данных (база данных и tomcat находятся на моем локальном компьютере, поэтому все локально). Это работает с меньшими объемами данных, но в некоторых случаях пользователю требуется много данных. Я проверил подобные проблемы, опубликованные здесь, но, похоже, таких проблем нет.

Мои вопросы

1. Почему не отображается ответ?

2. Ограничен ли размер ответа каким-либо образом на tomcat? Может быть, есть таймаут или что-то в этом роде?

3. Возможно, это Джексон не справляется со своей задачей. Если это Джексон - может ли это быть вызвано такими аннотациями, как @JsonBackReference и @JsonManagedReference?

4. Что я могу сделать, чтобы это исправить?

Код: Выделить всё

ClientAbortException:  java.io.IOException:  A n   e s t a b l i s h e d   c o n n e c t i o n   w a s   a b o r t e d   b y   t h e   s o f t w a r e   i n   y o u r   h o s t   m a c h i n e < b r   / >         a t   o r g . a p a c h e . c a t a l i n a . c o n n e c t o r . O u t p u t B u f f e r . r e a l W r i t e B y t e s ( O u t p u t B u f f e r . j a v a : 4 1 3 ) < b r   / >         a t   o r g . a p a c h e . t o m c a t . u t i l . b u f . B y t e C h u n k . f l u s h B u f f e r ( B y t e C h u n k . j a v a : 4 8 0 ) < b r   / >         a t   o r g . a p a c h e . t o m c a t . u t i l . b u f . B y t e C h u n k . a p p e n d ( B y t e C h u n k . j a v a : 3 6 6 ) < b r   / >         a t   o r g . a p a c h e . c a t a l i n a . c o n n e c t o r . O u t p u t B u f f e r . w r i t e B y t e s ( O u t p u t B u f f e r . j a v a : 4 3 8 ) < b r   / >         a t   o r g . a p a c h e . c a t a l i n a . c o n n e c t o r . O u t p u t B u f f e r . w r i t e ( O u t p u t B u f f e r . j a v a : 4 2 6 ) < b r   / >         a t   o r g . a p a c h e . c a t a l i n a . c o n n e c t o r . C o y o t e O u t p u t S t r e a m . w r i t e ( C o y o t e O u t p u t S t r e a m . j a v a : 9 1 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . c o r e . j s o n . U T F 8 J s o n G e n e r a t o r . _ f l u s h B u f f e r ( U T F 8 J s o n G e n e r a t o r . j a v a : 1 8 6 2 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . c o r e . j s o n . U T F 8 J s o n G e n e r a t o r . _ w r i t e B y t e s ( U T F 8 J s o n G e n e r a t o r . j a v a : 1 1 3 2 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . c o r e . j s o n . U T F 8 J s o n G e n e r a t o r . _ w r i t e F i e l d N a m e ( U T F 8 J s o n G e n e r a t o r . j a v a : 2 7 0 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . c o r e . j s o n . U T F 8 J s o n G e n e r a t o r . w r i t e F i e l d N a m e ( U T F 8 J s o n G e n e r a t o r . j a v a : 2 4 9 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . B e a n P r o p e r t y W r i t e r . s e r i a l i z e A s F i e l d ( B e a n P r o p e r t y W r i t e r . j a v a : 5 3 9 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . s t d . B e a n S e r i a l i z e r B a s e . s e r i a l i z e F i e l d s ( B e a n S e r i a l i z e r B a s e . j a v a : 6 4 4 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . B e a n S e r i a l i z e r . s e r i a l i z e ( B e a n S e r i a l i z e r . j a v a : 1 5 2 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . s t d . C o l l e c t i o n S e r i a l i z e r . s e r i a l i z e C o n t e n t s ( C o l l e c t i o n S e r i a l i z e r . j a v a : 1 1 7 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . s t d . C o l l e c t i o n S e r i a l i z e r . s e r i a l i z e C o n t e n t s ( C o l l e c t i o n S e r i a l i z e r . j a v a : 2 3 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . s t d . A s A r r a y S e r i a l i z e r B a s e . s e r i a l i z e ( A s A r r a y S e r i a l i z e r B a s e . j a v a : 1 8 3 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . B e a n P r o p e r t y W r i t e r . s e r i a l i z e A s F i e l d ( B e a n P r o p e r t y W r i t e r . j a v a : 5 4 1 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . s t d . B e a n S e r i a l i z e r B a s e . s e r i a l i z e F i e l d s ( B e a n S e r i a l i z e r B a s e . j a v a : 6 4 4 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . B e a n S e r i a l i z e r . s e r i a l i z e ( B e a n S e r i a l i z e r . j a v a : 1 5 2 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . s t d . C o l l e c t i o n S e r i a l i z e r . s e r i a l i z e C o n t e n t s ( C o l l e c t i o n S e r i a l i z e r . j a v a : 1 1 7 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . s t d . C o l l e c t i o n S e r i a l i z e r . s e r i a l i z e C o n t e n t s ( C o l l e c t i o n S e r i a l i z e r . j a v a : 2 3 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . s t d . A s A r r a y S e r i a l i z e r B a s e . s e r i a l i z e ( A s A r r a y S e r i a l i z e r B a s e . j a v a : 1 8 3 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . B e a n P r o p e r t y W r i t e r . s e r i a l i z e A s F i e l d ( B e a n P r o p e r t y W r i t e r . j a v a : 5 4 1 ) < b r   / >         a t   c o m . f a s t e r x m l . j a c k s o n . d a t a b i n d . s e r . s t d . B e a n S e r i a l i z e r B a s e . s e r i a l i z e F i e l d s ( B e a n S e r i a l i z e r B a s e . j a v a : 6 4 4 ) < b r   / >         a t   c o m . f a s t e r x m l . j a ckson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:114)
at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:1837)
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.writeInternal(MappingJackson2HttpMessageConverter.java:253)
at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:208)
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:143)
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:89)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:193)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:71)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:186)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:177)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1720)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by:  java.io.IOException: An established connection was aborted by the software in your host machine
at sun.nio.ch.SocketDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(Unknown Source)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.write(Unknown Source)
at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:123)
at org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101)
at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:174)
at org.apache.coyote.http11.InternalNioOutputBuffer.writeToSocket(InternalNioOutputBuffer.java:163)
at org.apache.coyote.http11.InternalNioOutputBuffer.flushBuffer(InternalNioOutputBuffer.java:242)
at org.apache.coyote.http11.InternalNioOutputBuffer.addToBB(InternalNioOutputBuffer.java:213)
at org.apache.coyote.http11.InternalNioOutputBuffer.access$000(InternalNioOutputBuffer.java:41)
at org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:268)
at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:119)
at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192)
at org.apache.coyote.Response.doWrite(Response.java:520)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:408)
...  69 more

2014-09-15 17:35:31 ERROR ExceptionHandlerExceptionResolver:343 - Failed to invoke @ExceptionHandler method: public void com.acxiom.listkey.metadata.exceptions.GlobalExceptionHandler.handleInternalException(java.lang.Exception)
java.lang.IllegalStateException:  Cannot call sendError() after the response has been committed
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:450)
at javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:119)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.setResponseStatus(ServletInvocableHandlerMethod.java:141)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:340)
at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:60)
at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:138)
at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:75)
at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1161)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:998)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:186)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:177)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1720)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
ниже приведен код (в контроллере), который возвращает ответ клиенту:

Код: Выделить всё

@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String getSelections(@RequestParam Integer systemId, @RequestParam String listCode)
throws JsonProcessingException {
SelectionsDTO selectionsDTO = new SelectionsDTO(systemSelectionService.findSelections(systemId,  listCode));

String retVal = objectMapper.writeValueAsString(selectionsDTO);
return retVal;
}
как вы можете видеть, я даже пытался преобразовать это в строку перед возвращением, чтобы исключить Джексона как причину неудачи. Не имеет значения, возвращаю ли я коллекцию своих DTO или строку. Это так же терпит неудачу. Я отладил его и проверил размер сообщения, которое было записано для успешного вывода (около 2,15 МБ). На мой взгляд, причиной сбоя является размер сообщения.

Подробнее здесь: https://stackoverflow.com/questions/258 ... hine-tomca
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»