Alguém já usou ou sabe como fazer para usar o Hibernate Validator com Java Swing? Já procurei muito e até agora encontrei apenas informações bem vagas, uns exemplos confusos que não dão certo, mas nada muito claro.
Qual o segredo em usar com Swing? É exatamente da mesma forma que você usa Hibernate Validator em qualquer contexto. O que você quer fazer especificamente?
Quero saber, por exemplo, quais os .jars necessários.
Estou tentando aqui e a todo instante falta classe tal que está em algum .jar mas não sei em qual .jar
Outra coisa que acho horrível é ter que usar o core do hibernate apenas para fazer validação (v3), mas até aí tudo bem, o problema são esses vários jars.
Código de teste:
[code]Usuario item = new Usuario();
item.setNome(“FRANCISCO ANTONIO VIEIRA SOUZA DA SILVA MOREIRA”); // validando tamanho maximo de 20 caracteres
item.setCodigo(1);
item.setNivel(3);
item.setSenha(“tomate”);
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.slf4j.impl.JCLLoggerFactory.getLogger(JCLLoggerFactory.java:69)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:243)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
at org.hibernate.validator.ClassValidator.<clinit>(ClassValidator.java:53)
at horus.ui.HorusMainUI.<clinit>(HorusMainUI.java:52)
at horus.Main.main(Main.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1302)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1248)
at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1066)
at com.sun.javaws.Launcher.run(Launcher.java:116)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.findClass(JNLPClassLoader.java:257)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source
Tenho no projeto:
Fiz o que você disse e agora tenho uma nova Exception:
03/12/2009 12:29:01 org.hibernate.validator.Version <clinit>
INFO: Hibernate Validator 3.1.0.GA
03/12/2009 12:29:01 org.hibernate.annotations.common.Version <clinit>
INFO: Hibernate Commons Annotations 3.1.0.GA
java.lang.AbstractMethodError: org.slf4j.impl.JDK14LoggerAdapter.trace(Ljava/lang/String;Ljava/lang/Object;)V
at org.hibernate.validator.ClassValidator.getDefaultResourceBundle(ClassValidator.java:167)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:125)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:104)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:96)
at horus.ui.HorusMainUI.<clinit>(HorusMainUI.java:52)
at horus.Main.main(Main.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1302)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1248)
at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1066)
at com.sun.javaws.Launcher.run(Launcher.java:116)
at java.lang.Thread.run(Unknown Source)
Eu não entendo isso, se eu baixei o Hibernate Validator 3.1.0 e coloquei TODOS os .jars no projeto, por que não funciona sem faltar classe ou método com assinatura diferente, etc?
Consegui utilizando aquele famoso método tentativa-e-erro, acabei resolvendo com esse arquivo: log4j-1.2.14.jar e slf4j-log4j12-1.4.2.jar, mas como alguém vai advinhar um trosso desse!? Nunca!!
Resultado da validação agora:
[code]log4j:WARN No appenders could be found for logger (org.hibernate.validator.Version).
log4j:WARN Please initialize the log4j system properly.
nome Nome deve ter no máximo 20 letras.
message = Nome deve ter no máximo 20 letras.
propertyName = nome
propertyPath = nome
value = FRANCISCO ANTONIO VIEIRA SOUZA DA SILVA MOREIRA
[/code]
Só q queria ver com EclipseLink, pq eu to pensando em “testá-lo”, mas pelo visto, só Hibernate tem isso, daí fica
estranho usar uma coisa e outra (eu acho) *r.