如何打印REST调用中服务器端接收到的确切JSON



我正在使用fasterxml将JSON转换为java。

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>

当我从UI访问服务时,我一直得到400 Bad Request。而高级REST客户端的调用运行良好。

如何打印在后端(java端)收到的JSON?

我尝试使用@ControllerAdvice注释。它给了我一个堆叠比赛,如下所示。但它并没有打印出确切的输入JSON。

13:30:12563警告[com.att.um.controller.ControllerConfig](默认值task-36)返回HTTP 400错误请求:org.springframework.http.coverter.HttpMessageNotReadableException:无法读取JSON:无法反序列化的实例com.att.um.web.services.rest.model.Json请求退出START_ARAY[来源:io.undertow.servlet.spec.ServletInputStreamImpl@43e804cf;行:1,列:1];嵌套异常为com.fasterxml.jackson.databind.JsonMappingException:无法反序列化com.att.um.web.services.rest.model.JsonRequest的实例在[源:io.undertow.servlet.spec.ServletInputStreamImpl@43e804cf;行:1,列:1]位于org.springframework.http.coverter.json.MappingJackson2HttpMessageConverter.readJavaType(MappingJackson2HHttpMessageConverter.java:228)[spring-web-4.0.9.REASE.jar:4.0.9.RELEASE]org.springframework.http.coverter.json.MappingJackson2HttpMessageConverter.read(MappingJackson2HttpMessageConverter.java:220)[spring-web-4.0.9.REASE.jar:4.0.9.RELEASE]org.springframework.web.servlet.mvc.method.annotations.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverter MethodArgumentRolver.java:138)[spring-webmvc-4.0.9.RELEASE.jar:4.0.9.RELENSE]org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponse BodyMethod Processor.java:178)[spring-webmvc-4.0.9.RELEASE.jar:4.0.9.RELENSE]org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponse BodyMethod Processor.java:98)[spring-webmvc-4.0.9.RELEASE.jar:4.0.9.RELENSE]

如果您对Controller实现进行注释,我认为Jackson已经为您做到了这一点
例如:

@CrossOrigin
@RestController
public class YourControllerImpl implements YourController {
@Autowired
private YourService yourService;
@Override
public ResponseEntity addObject(@RequestBody Object obj) {
yourService.addObject(obj);
return ResponseEntity.ok().build();
}
} 

方法yourService.addObject(obj);可以有一个后端逻辑,例如:
Object myObj = new Object(obj)Object myObj = new Object().from(obj)Object myObj = new Object();,并使用getters & setters

API可能看起来像:

@RequestMapping("/object")
public interface YourController {
@PostMapping
ResponseEntity addObject(@RequestBody Object obj);

@RequestBody将通过POST发送您的JSON对象。如果您想查看发送的内容,可以使用System.out.println(obj)。您还应该实现DTOs

相关内容

  • 没有找到相关文章

最新更新