[英]Jackson unmarshalling succeeds even though wrong XML root element
使用Spring Boot(2.1.4)和Jackson(2.9.8),我正在编写一个使用@RestController和@RequestBody来使用和生成XML的API。
使用XML工作,但它工作得太好了:当根元素与我的Java对象(使用@JacksonXmlRootElement localName注释)不匹配时,它仍然设法解组该对象。
其余控制器如下所示:
@RestController
@RequestMapping(value = "api", produces = MediaType.APPLICATION_XML_VALUE, consumes = MediaType.APPLICATION_XML_VALUE)
public class PutawayApiController extends BaseController {
private final ModelSampleService sampleService;
@Autowired
public PutawayApiController(ModelSampleService sampleService) {
this.sampleService = sampleService;
}
@PostMapping(value = "/putaway_close")
public PutawayCloseResponse putawayClose(@RequestBody PutawayCloseRequest request) {
return sampleService.putawayCloseResponse();
}
}
请求对象是:
@Data
@EqualsAndHashCode(callSuper = false)
@JacksonXmlRootElement(localName = "putawayCloseRequest")
public class PutawayCloseRequest extends BaseRequest {
private String shipmentRef;
}
它继承自:
@Data
public abstract class BaseRequest {
private String userId;
}
在Postman中执行以下调用时,它会触发我的调试点,如下图所示:
为什么它解组,即使根元素显然不是我配置的? 有没有办法在根元素不匹配时启用拒绝解组?
提前致谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.