java.io.IOException:在REST POST中写入服务器时出错

时间:2017-09-12 13:51:37

标签: java json rest jersey

我在 Java Spring MVC Web Application 中使用 Jersey REST客户端作为REST服务。我试图使用REST服务将一些数据发布到我的应用程序,数据是 JSON String 。我使用以下代码发布数据:




  ObjectMapper mapper = new ObjectMapper();
 String jsonString = mapper.writeValueAsString(myObject) ;
 ClientConfig config = new DefaultClientConfig();
客户端客户端= Client.create(config);
 WebResource webResource = client.resource(url);
 ClientResponse responseMsg = webResource&# XA; .queryParam(“jsonData”,jsonString
 .post(ClientResponse.class);
 String formMsg = responseMsg.getEntity(String.class);
  
&#xA ;


此处 myObject MyObject 类型的对象,它是我试图发布的 POJO 。< code> MyObject 包含一个字符串字段,我可以在其中存储任意长度的字符串。现在,当我尝试使用较小长度的字符串发布时,如果帖子成功,我可以获得成功的消息。但是当我有一个非常大的内容时,我得到以下异常:

&#xA;&#xA;
  com.sun.jersey.api.client.ClientHandlerException:java。 io.IOException:写入服务器时出错&#xA;  
&#xA;&#xA;

我认为异常是由内容长度引起的。有什么方法可以发布数据到我的任何长度的REST服务。

&#xA;&#xA;

添加下面的堆栈:

&#xA;&#xA;
  com.sun。 jersey.api.client.ClientHandlerException:java.io.IOExcep :写入服务器&#xA时出错;在com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)&#xA;在com.sun.jersey.api.client.Client.handle(Client.java:648)&#xA;在com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)&#xA;在com.sun.jersey.api.client.WebResource.post(WebResource.java:241)&#xA;在com.smartwcm.services.cbrain.controller.CbrainLessonController.saveSaint(CbrainLessonController.java:201)&#xA; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#xA; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&#xA; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xA;在java.lang.reflect.Method.invoke(Method.java:498)&#xA;在org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)&#xA;在org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)&#xA;在org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)&#xA;在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777)&#xA;在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706)&#xA;在org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)&#xA;在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)&#xA;在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)&#xA;在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)&#xA;在org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)&#xA;在javax.servlet.http.HttpServlet.service(HttpServlet.java:644)&#xA;在org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)&#xA;在javax.servlet.http.HttpServlet.service(HttpServlet.java:725)&#xA;在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)&#xA;在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&#xA;在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)&#xA;在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)&#xA;在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:330)&#xA;在org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)&#xA;在org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)&#xA;在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)&#xA;在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:342)&#xA;在org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)&#xA;在org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)&#xA;在org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)&#xA;在org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)&#xA;在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)&#xA;在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&#xA;在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)&#xA;在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)&#xA;在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)&#xA;在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)&#xA;在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)&#xA;在org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)&#xA;在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)&#xA;在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)&#xA;在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)&#xA;在org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:659)&#xA;在org.apache.coyote.http11.Http11NioProtocol $ Http11ConnectionHandler.process(Http11NioProtocol.java:223)&#xA;在org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1558)&#xA;在org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run(NioEndpoint.java:1515)&#xA;在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)&#xA;在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)&#xA;在org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)&#xA;在java.lang.Thread.run(Thread.java:745)&#xA;引起:java.io.IOException:写入服务器&#xA时出错;在sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:699)&#xA;在sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:711)&#xA;在sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1567)&#xA;在sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)&#xA;在java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)&#xA;在com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:240)&#xA;在com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)&#xA; ... 74更多&#xA;  
&#xA;

0 个答案:

没有答案