Domanda

Sto usando JSF 2, MyFaces, hibernate-validatore-4.1.0.Final.jar.

Io uso hibernate-validatore per validare i valori inseriti nel modulo.

public class Client {
   @Persistent
   @Pattern(regexp = "|.+@.+\\.[a-z]+", message = "Email format is invalid.")
   private String email;
   //getter
}

sto sviluppando modulo bulk-caricati, in cui i dati CSV analizzare e creare i record del database.

...
try{
  Client cl=new Client();
  cl.setEmail("from_csv_data");
}catch( //validation failed

Come faccio a riutilizzare lo stesso validatore qui?



Set> constraintViolations = validator.validate (nc);
genera questa eccezione

SEVERE: Received 'java.lang.NoSuchMethodError' when invoking action listener '#{clientBean.bulkUpload}' for component 'j_idt86'

28 gennaio 2011 08:35:39 javax.faces.event.MethodExpressionActionListener processAction
GRAVE: java.lang.NoSuchMethodError: javax.persistence.Persistence.getPersistenceUtil () Ljavax / persistenza / PersistenceUtil; a org.hibernate.validator.engine.resolver.JPATraversableResolver.isReachable (JPATraversableResolver.java:62)

ho provato questa soluzione
Ho hibernate-APP-2.0-api-1.0.0.Final.jar, hibernate-validatore-4.1.0.Final.jar
Ho bisogno di un altro vaso per fare questo lavoro?

È stato utile?

Soluzione

È possibile richiamare manualmente il validatore con qualcosa di simile:

ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

Validator validator = factory.getValidator();

Client client = new Client();

Set<ConstraintViolation<Client>> constraintViolations = validator.validate(client);

Altri suggerimenti

Molto probabilmente avere un altro incompleta file jar JPA 2 nel classpath. Purtroppo, alcune versioni incomplete di questo vaso è stato rilasciato ad un certo punto (TopLink per esempio). Controlla il tuo percorso di classe per qualsiasi barattolo contenente classi JPA. Vedi anche https://forum.hibernate.org/viewtopic.php?f=9&t = 999.855

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top