最初,我有一个旧的xsd,然后我使用xjc生成了类。我正在尝试使用基于JaxB批注的验证,但似乎验证正在忽略要求。一些xml节点是强制性的,但由于验证器未使用@XMLElement中标记的required,因此对象将进入后端系统,然后失败。
@XmlElement(name =“”,required = true)
@Configuration
public class AppConfig {
@Bean
public JaxbAnnotationModule jaxbAnnotationModule() {
return new JaxbAnnotationModule();
}
@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JaxbAnnotationModule());
mapper.setAnnotationIntrospector(new JaxbAnnotationIntrospector(mapper.getTypeFactory()));
mapper.setSerializationInclusion(Include.NON_NULL);
return mapper;
}
}
使用
完成的验证@Autowired
private Validator validator;
...Some code...
Set<ConstraintViolation<Request>> violations = validator.validate(request);