2017-06-28 46 views
0

@RequestBody用户用户 我已经读取请求主体和拦截器,我看到HTTP Servlet中的请求从失去PARAMS POST体后读一次。这里 Http Servlet request lose params from POST body after read it once 它只能被读取一次 如何使所有请求(主体)可缓存,以便可以使用spring启动多次读取?org.springframework.http.converter.HttpMessageNotReadableException:必需请求体丢失:公共org.springframework.http.ResponseEntity


INFO c.h.c.i.IncomingRequestLoggingInterceptor - [CLIENT REQUEST] method='POST' uri='/unregistertoken' query='null' body='{"parma1":"test","param2":"test"}' 
2017-06-28 15:18:36.918 (-07:00) default [http-nio-7443-exec-4] DEBUG o.s.web.cors.DefaultCorsProcessor - Skip CORS processing: request is from same origin 
2017-06-28 15:18:36.919 (-07:00) default [http-nio-7443-exec-4] TRACE o.s.w.m.s.HandlerMethodArgumentResolverComposite - Testing if argument resolver [org.springfra[email protected]7733f9cf] supports [class com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest] 
2017-06-28 15:18:36.920 (-07:00) default [http-nio-7443-exec-4] TRACE o.s.w.m.s.HandlerMethodArgumentResolverComposite - Testing if argument resolver [org.springframew[email protected]a2a23a] supports [class com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest] 
2017-06-28 15:18:36.920 (-07:00) default [http-nio-7443-exec-4] TRACE o.s.w.m.s.HandlerMethodArgumentResolverComposite - Testing if argument resolver [org.springframework.web.s[email protected]423a8bf5] supports [class com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest] 
2017-06-28 15:18:36.920 (-07:00) default [http-nio-7443-exec-4] TRACE o.s.w.m.s.HandlerMethodArgumentResolverComposite - Testing if argument resolver [org.springframework.web.serv[email protected]2627aff1] supports [class com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest] 
2017-06-28 15:18:36.920 (-07:00) default [http-nio-7443-exec-4] TRACE o.s.w.m.s.HandlerMethodArgumentResolverComposite - Testing if argument resolver [org.springframework.web.ser[email protected]1c17a17] supports [class com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest] 
2017-06-28 15:18:36.920 (-07:00) default [http-nio-7443-exec-4] TRACE o.s.w.m.s.HandlerMethodArgumentResolverComposite - Testing if argument resolver [org.springframework.web.servle[email protected]195780b9] supports [class com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest] 
2017-06-28 15:18:36.920 (-07:00) default [http-nio-7443-exec-4] TRACE o.s.w.m.s.HandlerMethodArgumentResolverComposite - Testing if argument resolver [org.springframework.web.ser[email protected]13cc4046] supports [class com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest] 
2017-06-28 15:18:36.920 (-07:00) default [http-nio-7443-exec-4] TRACE o.s.w.m.s.HandlerMethodArgumentResolverComposite - Testing if argument resolver [org.springframework.web.s[email protected]3a59edcb] supports [class com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest] 
2017-06-28 15:18:36.939 (-07:00) default [http-nio-7443-exec-4] DEBUG o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Read [class com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest] as "application/json;charset=UTF-8" with [org.springfr[email protected]36d1321] 
2017-06-28 15:18:36.941 (-07:00) default [http-nio-7443-exec-4] DEBUG o.s.w.s.m.m.a.ServletInvocableHandlerMethod - Failed to resolve argument 0 of type 'com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest' 
org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public org.springframework.http.ResponseEntity<org.springframework.http.ResponseEntity<java.lang.String>> com.ews.appws.application.controller.CoreWebserviceController.unregistrerToken(com.ews.appws.application.repository.paymentRepo.UnRegisterTokenRequest) throws com.fasterxml.jackson.core.JsonProcessingException 
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:154) 

回答

0

因为你加载的身体,所以你可以使用它你可以不读请求多次。另一个可能的解决方案是将此请求分解为两个单独的请求第一个是拦截器,它会做一些事情,然后它会发送请求到第二个私有API。
p.s.为什么你需要阅读请求之前?