Java Spring RestController-HTTP状态400客户端发送的请求在语法上不正确

Java Spring RestController-HTTP状态400客户端发送的请求在语法上不正确,java,spring,Java,Spring,我在春天有一个RestController,大多数时候它工作得很好 @RestController @RequestMapping("/restful/submitPrinterData") public class SubmitPrinterDataController { @RequestMapping(method = RequestMethod.POST) public ResponseEntity<String> SubmitPrinterData(@Reques

我在春天有一个RestController,大多数时候它工作得很好

@RestController
@RequestMapping("/restful/submitPrinterData")
public class SubmitPrinterDataController {

@RequestMapping(method = RequestMethod.POST)    
public ResponseEntity<String> SubmitPrinterData(@RequestBody PrinterData printerData) {  }                      
我不知道为什么spring没有将JSON转换为PrinterData,我也看不到spring日志,JSON本身就像5K行,因此无法跟踪/验证它

我试图在eclipse中添加一个java异常断点,以在eclipse框架中中断,从而获得json中中断的场景,但没有成功。


如何调试此问题或将日志添加到spring框架中以帮助我调试此类问题?

将此添加到application.properties文件中以增加spring日志记录:

logging.level.org.springframework.web=DEBUG

我会接受第一个答案,虽然它对我不起作用,但我发布了关于这个问题的单独问题, 我最后添加了一个新的测试方法SubmitPrenterDataTest 该方法将JSON作为字符串获取,然后使用Jackson对其进行转换,然后捕获任何转换问题,并将其作为JSON返回,因此很容易看到问题

@RestController
@RequestMapping("/restful/submitPrinterData")
public class SubmitPrinterDataController {

@RequestMapping(value="/test",method = RequestMethod.POST)    
public ResponseEntity<String> SubmitPrinterDataTest(@RequestBody String printerData) {  
    ObjectMapper mapper = new ObjectMapper();
            try {

                PrinterData printerData= mapper.readValue(appResponse, PrinterData.class);      
            }catch(Exception ex) {
                ex.printStackTrace();
                String err  = StringEscapeUtils.escapeJson(ex.getMessage()); 
                return Helper.getRsponse(HttpStatus.INTERNAL_SERVER_ERROR,"{\"error\":\""+err+"\"}");
            }
}

我认为Json响应中有一些无法识别的对象,因此会出现这个问题。您的PrinterData对象是否用@Jsonignorepropertiesignoreunknown=false进行了注释?不,我没有这个Jsonignoreproperties注释,但我发现了问题,一些额外的标记。看看我贴的答案。
@RestController
@RequestMapping("/restful/submitPrinterData")
public class SubmitPrinterDataController {

@RequestMapping(value="/test",method = RequestMethod.POST)    
public ResponseEntity<String> SubmitPrinterDataTest(@RequestBody String printerData) {  
    ObjectMapper mapper = new ObjectMapper();
            try {

                PrinterData printerData= mapper.readValue(appResponse, PrinterData.class);      
            }catch(Exception ex) {
                ex.printStackTrace();
                String err  = StringEscapeUtils.escapeJson(ex.getMessage()); 
                return Helper.getRsponse(HttpStatus.INTERNAL_SERVER_ERROR,"{\"error\":\""+err+"\"}");
            }
}