如何在JAX-WS/JAXB中使用with schemaValidation验证非空元素
我正在使用JAX-WS实现java first web服务,并尝试使用如何在JAX-WS/JAXB中使用with schemaValidation验证非空元素,jaxb,jax-ws,Jaxb,Jax Ws,我正在使用JAX-WS实现java first web服务,并尝试使用@SchemaValidation验证webMethod参数中所需的元素。 下面是我如何声明我所需的属性 @xmlement(required=true)完美地映射了我的wsdl模式(minOccur不再是0),但是schemaValidation不验证传递的null元素 @XmlElement(required=true, nillable=false) public String getClubName() { r
@SchemaValidation
验证webMethod参数中所需的元素。
下面是我如何声明我所需的属性
@xmlement(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 first web服务时不能这样做
<xsd:simpleType name="NotEmptyString">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
相关职位
显然,您可以像赛义德那样使用JAXB来完成。或者可以使用如上所述的模式验证框架。但是,IMHO,这两种方法都给代码增加了太多的混乱,所以我选择了,这为您提供了一种快速而干净的方法。可惜没有自动支持此=/