Java 在一段时间内,收到400个restTemplate错误请求

Java 在一段时间内,收到400个restTemplate错误请求,java,spring,resttemplate,Java,Spring,Resttemplate,在一段时间内,收到400个restTemplate错误请求 这意味着当在tomcat上部署war时,它可以正常工作,但几个小时后restTemplate抛出异常 所以,当我们再次启动tomcat服务器时,它可以正常工作几个小时 applicationContext.xml中的restTemplate配置为 <bean id="restTemplate" class="org.springframework.web.client.RestTemplate"> <prope

在一段时间内,收到400个restTemplate错误请求 这意味着当在tomcat上部署war时,它可以正常工作,但几个小时后restTemplate抛出异常

所以,当我们再次启动tomcat服务器时,它可以正常工作几个小时

applicationContext.xml中的restTemplate配置为

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <property name="supportedMediaTypes" value="application/json">
                </property>
           </bean>
        </list>
     </property>
</bean>

在我的服务中,像自动连线一样

    @Autowired
        private RestTemplate restTemplate;

    and service code like

        HttpEntity<Queue> queueMap = new HttpEntity<Queue>(queueItem);
        try {
        queueList = restTemplate.postForObject(HMS_QUEUE_URL + "/fetchqueuebyrange", queueMap, QueueList.class);
        } catch (Exception e) {
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            e.printStackTrace(pw);
            log.debug("PatQueueService-fetchApptQueueItemByApptDate :: " + pw.toString());
        }
@Autowired
私有RestTemplate RestTemplate;
和服务代码类似
HttpEntity queueMap=新的HttpEntity(queueItem);
试一试{
queueList=restTemplate.postForObject(HMS_QUEUE_URL+“/fetchqueuebyrange”,queueMap,queueList.class);
}捕获(例外e){
StringWriter sw=新的StringWriter();
PrintWriter pw=新的PrintWriter(sw);
e、 printStackTrace(pw);
log.debug(“PatQueueService FetchAppTqueItemByApptDate::”+pw.toString());
}
这里我通过restTemplate调用mongo restService

例外是

org.springframework.web.client.HttpClientErrorException:400错误 请求 org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:90) 在 org.springframework.web.client.restemplate.handleResponseError(restemplate.java:494) 在 org.springframework.web.client.restemplate.doExecute(restemplate.java:451) 在 org.springframework.web.client.restemplate.execute(restemplate.java:409) 在 org.springframework.web.client.restemplate.postForObject(restemplate.java:287) 在 com.genex.hms.patqueue.service.patqueueserviceinpl.fetchQueueByRange(patqueueserviceinpl.java:954) at sun.reflect.GeneratedMethodAccessor472.invoke(未知源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:606) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) 在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196) 位于com.sun.proxy.$Proxy80.fetchQueueByRange(未知源) com.genex.hms.patqueue.controller.QueueController.fetchAppointmentQueue(QueueController.java:282) at sun.reflect.GeneratedMethodAccessor471.invoke(未知源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:606) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) 在 org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 在 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 在 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:646) http.HttpServlet.service(HttpServlet.java:727)位于 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 运行(Thread.java:745)


在代码中看起来不成问题,因为它适用于初始调用

您可以将调试添加到放置在queueMap中的记录元素(名称和值)中。并注意它给出错误的记录

使用chrome rest插件等工具手动触发此记录,并查看输出

这可能是mongo restService的问题(可能是)不接受发布的数据并抛出错误