2012-11-22 4 views
2

API 서버가 작동합니다.
모바일 APP에서 API 서버에 연결할 때 예외가 발생할 수 있습니다.
테스트 서버에서 테스트를 시도했지만 재현 할 수 없습니다. 는

HttpMessageNotReadableException : JSON을 읽을 수 없습니다. 읽기 시간이 초과되었습니다.

문제가 무엇입니까 (I 아파치와 톰캣 연결 시간을. 변경) ??
이 문제를 어떻게 해결할 수 있습니까?


ERROR Could not read JSON: Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out 
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out 
     at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readInternal(MappingJacksonHttpMessageConverter.java:125) 
     at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:153) 
     at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:120) 
     at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:91) 
     at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:71) 
     at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:75) 
     at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:156) 
     at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:117) 
     at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 
     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 
     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 
     at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 
     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
     at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) 
     at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291) 
     at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776) 
     at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705) 
     at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898) 
     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) 
     at java.lang.Thread.run(Thread.java:662) 
Caused by: java.net.SocketTimeoutException: Read timed out 
     at java.net.SocketInputStream.socketRead0(Native Method) 
     at java.net.SocketInputStream.read(SocketInputStream.java:129) 
     at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) 
     at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) 
     at java.io.BufferedInputStream.read(BufferedInputStream.java:317) 
     at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:628) 
     at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:566) 
     at org.apache.jk.common.JkInputStream.receive(JkInputStream.java:200) 
     at org.apache.jk.common.JkInputStream.doRead(JkInputStream.java:179) 
     at org.apache.coyote.Request.doRead(Request.java:427) 
     at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304) 
     at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:419) 
     at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:327) 
     at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193) 
     at org.codehaus.jackson.impl.ByteSourceBootstrapper.ensureLoaded(ByteSourceBootstrapper.java:507) 
     at org.codehaus.jackson.impl.ByteSourceBootstrapper.detectEncoding(ByteSourceBootstrapper.java:129) 
     at org.codehaus.jackson.impl.ByteSourceBootstrapper.constructParser(ByteSourceBootstrapper.java:224) 
     at org.codehaus.jackson.JsonFactory._createJsonParser(JsonFactory.java:785) 
     at org.codehaus.jackson.JsonFactory.createJsonParser(JsonFactory.java:561) 
     at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1923) 
     at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readInternal(MappingJacksonHttpMessageConverter.java:122) 
+0

답을 찾았습니까? –

답변

1

문제
는 스택 추적에 바로 거기에있다 : "읽기 시간이 초과되었습니다." 이는 클라이언트가 서버에 데이터를 보내는 것을 너무 오래 중지하여 서버가 포기하여 연결이 끊어 졌다고 가정합니다. 그런 다음 서버는 JSON 메시지를 모두 수신하지 않았기 때문에 JSON 메시지를 구문 분석하지 못했습니다 (클라이언트가 나머지를 보낼 때까지 대기하기 때문에).

관련 문제