我正在使用JAX-WS實現使用JAX-WS的java-first Web服務,並嘗試使用@SchemaValidation
驗證webMethod參數中的必需元素。 這裏是我如何聲明我的必需屬性;如何在JAX-WS/JAXB中使用schemaValidation驗證非空元素
@XmlElement(required=true)
完美地映射了我的wsdl模式(minOccur不再是0),但schemaValidation未驗證傳遞的null元素。
@XmlElement(required=true, nillable=false)
public String getClubName() {
return clubName;
}
任何使用我的API的客戶端都可以傳遞null元素。我沒有辦法阻止使用JAXB。
另一方面,bean驗證工作如下。但不適用於字符串字段
@Column(name = "FOUNDATION_YEAR", nullable = false)
private Integer foundationYear; //schemaValidation validates
@Column(name = "CLUB_NAME", length=100, nullable = false)
private String clubName; //schemaValidation does not validate
如何使用schemaValidation驗證字符串值?一種方法是把限制,但使用Java的第一個Web服務
<xsd:simpleType name="NotEmptyString">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
相關的職位,當你不能做到這一點;
Validation for generated JAXB Classes (JSR 303/Spring)
How to enable schema validation so that JAXB rejects empty element?