我有dropwizard 0.7.1設置和@valid
註釋在使用json時正常工作,並且在HTTP響應中出現422錯誤。在dropwizard中驗證XML實體
如果我更改資源並添加jaxb綁定以使用XML,驗證從未開始。 它是否受支持?
我試着手動實例化一個hibernate驗證器,它正確地檢測到錯誤。
謝謝
我有dropwizard 0.7.1設置和@valid
註釋在使用json時正常工作,並且在HTTP響應中出現422錯誤。在dropwizard中驗證XML實體
如果我更改資源並添加jaxb綁定以使用XML,驗證從未開始。 它是否受支持?
我試着手動實例化一個hibernate驗證器,它正確地檢測到錯誤。
謝謝
我最後寫一些MessageBodyProviders該包裹JAXB的人,並添加Dropwizard驗證:https://github.com/soulrebel/dropwizard-jaxb
我發佈的最初版本。我可能會添加一些測試並將其發佈到Maven的某一天。
我在我的用戶類中添加了這個方法,它的驗證工作。在我的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()。嘗試其他方法名稱,但後來發生錯誤。
Jackson還支持Jaxb和Jackson註釋的XML POJO。你也可以查看我寫在https://github.com/yunspace/dropwizard-xml中的一個例子,它擴展了JacksonJaxbXMLProvider
這是我最初的解決方案(也作爲靈感),但是我發現Jackson不是JAXB(默認情況下沒有在dropwizard中驗證)和有幾件事情打破了。 – 2014-12-05 14:16:29
傑克遜應該通過定義合適的introspectors來支持JAXB註釋:http://wiki.fasterxml.com/JacksonJAXBAnnotations我自己也沒有嘗試過,也許稍後會在我的庫中寫一些測試。 – yunspace 2014-12-07 23:07:36