【发布时间】:2019-09-28 03:36:53
【问题描述】:
在我的 Spring Boot 2.1 应用程序中,我想提供一个 XML-HTTP-API。
基于现有的 XSD 架构,我生成了 java 类(使用 jaxb)。生成的代码大致是这样的:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CustomerRequestType", propOrder = {
"firstName",
"lastName"
})
public class CustomerRequestType {
@XmlElement(name = "firstName")
protected List<FirstNameType> firstName;
@XmlElement(name = "lastName")
protected List<LastNameType> lastName;
// ...getter methods...
}
我的 spring boot RestControllers 是这样的:
@RestController
@RequestMapping("customer.xml")
public class CustomerController {
@PostMapping
public CustomerResponseType postCustomer(@RequestBody CustomerRequestType anfrage) {
// ...business code...
}
}
当反序列化带有未知标签或属性的请求时,如何让 spring boot 与 jackson 失败?
<Customer>
<firstName>Bob</firstName>
<lastName>Schmitt</lastName>
<unknownTag unknownProperty="1234"/>
</Customer>
我尝试通过设置此属性将 jackson 设置为严格模式(尽管文档告诉我,无论如何它默认设置为 true),但网络服务仍然返回状态 200:
spring.jackson.deserialization.fail-on-unknown-properties=true
【问题讨论】:
标签: java xml spring spring-boot jackson