我尝试在 GWT 中使用 bean 验证。我遵循本指南: https ://developers.google.com/web-toolkit/doc/latest/DevGuideValidation
在编译时,我有以下错误:
ERROR: Could not load deferred binding result type 'com.google.gwt.sample.validation.client.SampleValidatorFactory'
如果我包含这个依赖项,我可以让它工作:
<dependency>
<groupId>com.googlecode.gwt-validation</groupId>
<artifactId>gwt-validation</artifactId>
<version>2.1</version>
</dependency>
但我觉得这很奇怪,因为指南中没有提到这种依赖关系。
问题:由于 GWT 2.5 应该支持 bean 验证,为什么我需要这个额外的库?我究竟做错了什么?
我正在使用 GWT 2.5.0
我的 pom.xml 包含以下依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.1.Final</version>
<type>jar</type>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.1.Final</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<type>jar</type>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<type>jar</type>
</dependency>
我的 gwt.xml 包含以下几行:
<inherits name="org.hibernate.validator.HibernateValidator" />
<replace-with
class="com.google.gwt.sample.validation.client.SampleValidatorFactory">
<when-type-is class="javax.validation.ValidatorFactory" />
</replace-with>
在代码中,我以这种方式获取验证器:
import javax.validation.Validator;
...
private static final Validator VALIDATOR= Validation.buildDefaultValidatorFactory().getValidator();