Validation GWT验证错误
我在GWT项目中添加了验证可能性。但它不起作用。每次尝试验证某些内容时,我都会遇到以下错误:Validation GWT验证错误,validation,gwt,Validation,Gwt,我在GWT项目中添加了验证可能性。但它不起作用。每次尝试验证某些内容时,我都会遇到以下错误: Rebinding com.val.client.SampleValidatorFactory.GwtValidator Invoking generator com.google.gwt.validation.rebind.ValidatorGenerator Unexpected error trying to instantiate Generator 'com.google.gwt.valida
Rebinding com.val.client.SampleValidatorFactory.GwtValidator
Invoking generator com.google.gwt.validation.rebind.ValidatorGenerator
Unexpected error trying to instantiate Generator 'com.google.gwt.validation.rebind.ValidatorGenerator'
MyEntity.java
package com.val.entity;
public class Pravform implements Serializable {
@Size(min = 4)
private String pfName;
...
package com.val.client;
import javax.validation.Validator;
import com.google.gwt.core.client.GWT;
import com.google.gwt.validation.client.AbstractGwtValidatorFactory;
import com.google.gwt.validation.client.GwtValidation;
import com.google.gwt.validation.client.impl.AbstractGwtValidator;
import com.val.entity.*;
public final class SampleValidatorFactory extends AbstractGwtValidatorFactory {
@GwtValidation(Pravform.class)
public interface GwtValidator extends Validator {
}
@Override
public AbstractGwtValidator createValidator() {
return GWT.create(GwtValidator.class);
}
}
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import com.val.entity.Pravform;
public class Main implements EntryPoint {
Pravform newPravform = new Pravform(pfNameTextBox.getText());
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Pravform>> violations = validator.validate(newPravform);
if (!violations.isEmpty()) {
tempLabel.setText("Error");
}
...
SampleValidatorFactory.java
package com.val.entity;
public class Pravform implements Serializable {
@Size(min = 4)
private String pfName;
...
package com.val.client;
import javax.validation.Validator;
import com.google.gwt.core.client.GWT;
import com.google.gwt.validation.client.AbstractGwtValidatorFactory;
import com.google.gwt.validation.client.GwtValidation;
import com.google.gwt.validation.client.impl.AbstractGwtValidator;
import com.val.entity.*;
public final class SampleValidatorFactory extends AbstractGwtValidatorFactory {
@GwtValidation(Pravform.class)
public interface GwtValidator extends Validator {
}
@Override
public AbstractGwtValidator createValidator() {
return GWT.create(GwtValidator.class);
}
}
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import com.val.entity.Pravform;
public class Main implements EntryPoint {
Pravform newPravform = new Pravform(pfNameTextBox.getText());
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Pravform>> violations = validator.validate(newPravform);
if (!violations.isEmpty()) {
tempLabel.setText("Error");
}
...
Main.java
package com.val.entity;
public class Pravform implements Serializable {
@Size(min = 4)
private String pfName;
...
package com.val.client;
import javax.validation.Validator;
import com.google.gwt.core.client.GWT;
import com.google.gwt.validation.client.AbstractGwtValidatorFactory;
import com.google.gwt.validation.client.GwtValidation;
import com.google.gwt.validation.client.impl.AbstractGwtValidator;
import com.val.entity.*;
public final class SampleValidatorFactory extends AbstractGwtValidatorFactory {
@GwtValidation(Pravform.class)
public interface GwtValidator extends Validator {
}
@Override
public AbstractGwtValidator createValidator() {
return GWT.create(GwtValidator.class);
}
}
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import com.val.entity.Pravform;
public class Main implements EntryPoint {
Pravform newPravform = new Pravform(pfNameTextBox.getText());
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Pravform>> violations = validator.validate(newPravform);
if (!violations.isEmpty()) {
tempLabel.setText("Error");
}
...
import javax.validation.ConstraintViolation;
导入javax.validation.validation;
导入javax.validation.Validator;
导入javax.validation.ValidatorFactory;
导入com.val.entity.Pravform;
公共类主实现入口点{
Pravform newPravform=newPravform(pfNameTextBox.getText());
Validator Validator=Validation.buildDefaultValidatorFactory().getValidator();
设置冲突=validator.validate(newPravform);
如果(!inflictions.isEmpty()){
tempLabel.setText(“错误”);
}
...
Main.gwt.xml
....
<inherits name="org.hibernate.validator.HibernateValidator" />
<replace-with
class="com.val.client.SampleValidatorFactory">
<when-type-is class="javax.validation.ValidatorFactory" />
</replace-with>
....
。。。。
....
请帮助我解决这个问题。错误是什么?在开发模式下,您只会看到几行这样的内容,但单击任何一行都会提供更多详细信息。您可能会发现编译项目更容易,并在那里看到完整的错误。错误行是
尝试实例化Generator'com.google.gwt.validation.rebind.V时出现意外错误alidatorGenerator'
。前两行:Rebinding com.val.client.SampleValidatorFactory.GwtValidator调用generator com.google.gwt.validation.rebind.ValidatorGenerator
来自调试器。是的,隐藏了错误信息:`java.lang.NoClassDefFoundError:javax/validation/ParameterNameProvider`。我起初没有看到它时间。请尝试跟踪该错误消息-如果没有帮助,请共享完整的错误日志,以及所有可用的错误。这可能有助于编译,以便您可以在一个日志中获取整个错误集。问题出在hibernate validator和validation api的兼容版本中。相同的问题已在此处查看。谢谢您,Colin,在rig中指导我ht方向。