convalida di fagioli invoke
-
26-10-2019 - |
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?
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