【发布时间】:2011-10-22 18:16:46
【问题描述】:
我遵循 gwt 2.4 验证示例并将所有内容实现到我自己的应用程序中。客户端工作得很好。
private void verifyRegistrationData(final RegistrationTO registration) throws ConstraintViolationException {
final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
final Set<ConstraintViolation<RegistrationTO>> violations = validator.validate(registration);
if (violations.size() > 0) {
final Set<ConstraintViolation<?>> temp = new HashSet<ConstraintViolation<?>>(violations);
throw new ConstraintViolationException(temp);
...
但如果我在服务器端做同样的事情:
public void update(final RegistrationTO registration) throws IllegalArgumentException, ConstraintViolationException, TestException {
final Set<ConstraintViolation<RegistrationTO>> violations = validator.validate(registration);
if (!violations.isEmpty()) {
final Set<ConstraintViolation<?>> temp = new HashSet<ConstraintViolation<?>>(violations);
throw new ConstraintViolationException(temp);
}
...
整个事情都崩溃了,但有以下异常:
javax.servlet.ServletContext 日志:调度传入 RPC 调用时出现异常
com.google.gwt.user.client.rpc.SerializationException:类型 'org.hibernate.validator.engine.PathImpl' 未包含在可由此 SerializationPolicy 序列化的类型集中,或者无法加载其 Class 对象。出于安全考虑,此类型不会被序列化。
这就是 PathImpl 看起来像 hibernate-validator-4.1.0.Final-sources.jar 的样子
public class PathImpl implements Path, Serializable {
private static final long serialVersionUID = 7564511574909882392L;
...
看起来不错(至少在我看来)
我正在使用 GWT 2.4、validation-api-1.0.0.GA、hibernate-validator-4.1.0.Final、gwt-servlet-deps ...
提前致谢!
【问题讨论】:
-
欢迎来到 GWT-RPC 的不确定世界。时机成熟时切换到 RequestFactory,这是一个建议。
标签: validation gwt