【发布时间】:2014-10-03 16:21:50
【问题描述】:
我已经设置了 dropwizard 0.7.1,@valid 注释在使用 json 时可以正常工作,我在 HTTP 响应中收到 422 错误。
如果我更改资源并添加 jaxb 绑定以使用 XML,验证永远不会启动。 支持吗?
我尝试手动实例化一个休眠验证器,它正确检测到错误。
谢谢
【问题讨论】:
标签: java xml validation jersey dropwizard
我已经设置了 dropwizard 0.7.1,@valid 注释在使用 json 时可以正常工作,我在 HTTP 响应中收到 422 错误。
如果我更改资源并添加 jaxb 绑定以使用 XML,验证永远不会启动。 支持吗?
我尝试手动实例化一个休眠验证器,它正确检测到错误。
谢谢
【问题讨论】:
标签: java xml validation jersey dropwizard
我在我的用户类中添加了这个方法,它的验证工作。在我的 junit 测试中,javax.validation.ConstraintViolationException 与给定的错误消息完全相同。我用的是 DW 0.7.1!
...
@ValidationMethod(message="user_name is null or empty")
public boolean isUserName() {
if (Strings.isNullOrEmpty(user_name)) {
return false;
} else {
return true;
}
}
...
只有一个问题让我感到困惑。我不能以我自己的方式命名方法。重要的是,如果类 attibut 命名为 user_name,则验证方法必须是 isUserName()。尝试了其他方法名,结果报错。
【讨论】:
我最终编写了一些 MessageBodyProviders 来包装 JAXB 并添加 Dropwizard 验证:https://github.com/soulrebel/dropwizard-jaxb
我发布了初始版本。有一天我可能会添加一些测试并将其发布到 Maven。
【讨论】:
Jackson 还支持 Jaxb 和 Jackson 注释的 XML POJO。您还可以查看我在 https://github.com/yunspace/dropwizard-xml 中编写的示例,该示例扩展自 JacksonJaxbXMLProvider
【讨论】: