[英]In Java SE: not-null property references a null or transient value
[英]How to validate XML input not-null property in Java REST service?
我正在TomEE下運行該服務。
該模型非常簡單:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Card {
@XmlElement(required = true, nillable = false)
private String cardNumber;
public Card() {
//no-op
}
public Card(final String s) {
cardNumber = s;
}
public String getCardNumber() {
return cardNumber;
}
public void setCardNumber(String cardNumber) {
this.cardNumber = cardNumber;
}
}
我遵循了這個示例https://docs.oracle.com/javaee/7/tutorial/jaxrs-advanced008.htm
該服務也非常簡單,例如:
@Consumes(APPLICATION_XML)
@Produces(APPLICATION_XML)
public class MyService {
@POST
@Path("status")
public String queryStatus(Card card) {
// do something
}
}
如果我的輸入格式錯誤,它將有適當的例外。 但是它似乎無法驗證空卡號或空值。
例如,當我有
"<card></card>"
要么
"<card><cardNumber> </cardNumber></card>"
(帶有空字符串),該服務仍然可以通過,“ cardNumber”屬性為null或為空。
好吧,我可以在二傳手中做些事情來拋出異常。 但是我希望JavaEE如果將注釋放在屬性上,則可以自動處理這種情況。
那我在這里想念什么? 謝謝您的提示!
使用Bean驗證( http://beanvalidation.org/),Java EE提供了一種驗證對象的標准方法。 它還與JAX RS集成在一起。
因此,您可以在Card類中使用@NotNull
類的注釋。 在您的服務中,只需說您想要一張@Valid
卡即可。
可以在此處找到示例: https : //jaxenter.com/integrating-bean-validation-with-jax-rs-2-106887.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.