如何在JAX-WS/JAXB中使用with schemaValidation验证非空元素

如何在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

我正在使用JAX-WS实现java first web服务,并尝试使用
@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,这两种方法都给代码增加了太多的混乱,所以我选择了,这为您提供了一种快速而干净的方法。可惜没有自动支持此=/