| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 19:30:49
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
O VRaptor suporta Hibernate Validator 4x ?
Como injeto através do VRaptor, é possível ao invés de ficar criando ValidatorFactory/Validator "na mão" ?
Obg!
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 19:51:36
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
Código do Controller
De qualquer forma, preciso ccontrolar as mensasgens de erro na mão ? E a internacionalização?
Trace
Pelo visto tenho que usar JPA (Estou usando Hibernate puro) ou é impressão minha ?
This message was edited 1 time. Last update was at 04/05/2010 20:45:26
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 21:41:27
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
seufagner wrote:O VRaptor suporta Hibernate Validator 4x ?
Sim, existe, eu mesmo que implementei
seufagner wrote:Como injeto através do VRaptor, é possível ao invés de ficar criando ValidatorFactory/Validator "na mão" ?
Basta você colocar o jar do Hibernate Validator 4x no classpath (WEB-INF/lib) que o Vraptor registra o converter automagico. Para usar basta você injetar o Validator via construtor e chamar o método validate.
seufagner wrote:Pelo visto tenho que usar JPA (Estou usando Hibernate puro) ou é impressão minha ?
Creio que sim, pois o Hibernate Validator 4x é implementada baseado na spec Bean Validator do JPA 2x.
This message was edited 1 time. Last update was at 04/05/2010 21:42:07
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 22:09:40
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
garcia-jj wrote:
seufagner wrote:Pelo visto tenho que usar JPA (Estou usando Hibernate puro) ou é impressão minha ?
Creio que sim, pois o Hibernate Validator 4x é implementada baseado na spec Bean Validator do JPA 2x.
nop, não senhor... a spec JSR303 é uma coisa... e do JPA é outra.... não tem nada a ver uma com a outra...
vc não precisa de JPA para usar validações, e não precisa ser o JPA do Hiberante, caso resolva usar JPA....
o bean validator é totalmente independente.... e funciona tanto em Satand alone, como em aplicações maiores....
A única coisa é que o Hiberante é a implementação de referencia do Bean Validator, porem o Hiberante 4, é um fork do 3, para ser compativel com a JSR 303, tanto que os 2 não são compativeis....
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 22:12:18
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
já tá implementado, só que foi lançado com um bug (por culpa minha, não do garcia-jj =S)
o fix tá no último snapshot:
http://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.1.3-SNAPSHOT/
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 22:16:01
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Lavieri wrote:nop, não senhor... a spec JSR303 é uma coisa... e do JPA é outra.... não tem nada a ver uma com a outra...
Desculpe, na correria troquei as bolas
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 22:34:26
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
garcia-jj wrote:
Lavieri wrote:nop, não senhor... a spec JSR303 é uma coisa... e do JPA é outra.... não tem nada a ver uma com a outra...
Desculpe, na correria troquei as bolas
com Hibernate ate tem =PP uuhuhuhuh pra falar a verdade....
o Hiberante implementa um Listener, (por padrão, afinal vc pode desativar ele) ... esse listener na presença do pacote do bean validator na lib, faz a validação automaticamente antes de persit/marge fazendo parecerque é ralmente integrado....
Não sei se o toplink faz o mesmo no JPA2 quando vê a JSR303 na lib, enfim.... é isso ai...
......
o.O .... Lucas, vcs podiam fingir que nada aconteceu, e deixar o snapshot com o bug-fix como sendo o 3.1.2 =P .... assim para os downloads futuros, a turma não vai baixar com esse bug.... como no site do vraptor a versão estavel para download é a 3.1.2, acaba que nego pega a versão com esse bug... =/
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 22:45:33
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Mas falando do erro, estou achando estranho esse stacktrace. Analisando os componentes que envolvem o JSR303Validator apenas as classes de javax.validator são usadas (vide links abaixo). E no stacktrace estamos com o seguinte erro:
A classe JSR303Validator está envolvida, porém na linha 67 é chamado apenas o validate da factory. Creio que há sim alguma dependencia do validator quanto ao JPA, pois todas as classes acima são do pacote org.hibernate.validator.engine.
http://github.com/caelum/vraptor/blob/master/vraptor-core/src/main/java/br/com/caelum/vraptor/validator/JSR303Validator.java
http://github.com/caelum/vraptor/blob/master/vraptor-core/src/main/java/br/com/caelum/vraptor/validator/JSR303ValidatorFactory.java
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 23:05:50
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
a partir da factory, ele usa automaticamente a implementação...
se vc estivesse com a implementação bolinha no classpath, nesse mesmo ponto do stack estaria:
br.com.bolinha.....
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 23:09:13
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Lucas Cavalcanti wrote:a partir da factory, ele usa automaticamente a implementação...
se vc estivesse com a implementação bolinha no classpath, nesse mesmo ponto do stack estaria:
br.com.bolinha.....
O que eu quero dizer que o toplevel são classes do Hibernate Validator, ou seja, a dependencia está sendo do HV4 e não Vr3. Ainda mais estranho essa
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 23:47:07
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
Estou tomando o mesmo bug que o garcia.
No site do Hibernate Validator eles sugerem que adicione a lib do jpa2 no classpath, logo, na minha opinião, há dependência que gera tal erro.
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2010 02:45:45
|
Sergio Lopes
Moderador
![[Avatar]](/images/avatar/8232e119d8f59aa83050a741631803a6.jpg)
Membro desde: 17/11/2003 00:22:10
Mensagens: 1368
Localização: São Paulo - SP
Offline
|
To usando o Hibernate Validator 4 com a JSR303 com sucesso no VRaptor 3.1.2 no Google AppEngine após corrigir o bug que o Lucas comentou. Eu precisei chamar JSR303Validator.getFactory() no início da aplicação senão tomava o NullPointer que reportei lá.
Sobre a dependência: pelo menos no GAE, onde as coisas são meio estranhas com a JPA, precisei tirar aquele JAR jpa-api-BETA-2 que vem junto com o Validator. Se deixar lá ele procura por JPA 2 e cria essa dependência que vocês falaram. Mas basta tirar o tal jar e tudo funciona
[]'s
|
Sérgio Lopes - twitter: @sergio_caelum - blog pessoal: sergiolopes.org
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2010 10:46:15
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
seufagner wrote:Estou tomando o mesmo bug que o garcia.
Na verdade esse erro é o teu, eu não estou tendo esse erro não porque não uso o Hibernate Validator. Apenas repliquei teu stacktrace para comentar que estou achando tudo isso muito estranho. Creio que não tem nada a ver com o Vraptor, mas sim alguma dependencia do Hibernate.
Vou analisar a documentação para ver as dependencias certinho, mas por alguma razão que não sei qual está sendo chamado as classes do JPA.
Sergio Lopes wrote: Sobre a dependência: pelo menos no GAE, onde as coisas são meio estranhas com a JPA, precisei tirar aquele JAR jpa-api-BETA-2 que vem junto com o Validator. Se deixar lá ele procura por JPA 2 e cria essa dependência que vocês falaram. Mas basta tirar o tal jar e tudo funciona.
Acho que pode ser esse o problema então. Deve haver alguma classe do JPA no classpath, então o Hibernate Validator tenta chamar algo. Seufagner, verifique se há alguma classe dessas no teu classpath como o Sérgio falou.
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/05/2010 18:22:39
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Estive nessa semana mexendo nesse componente do Bean Validator no Vraptor, e conforme uma issue aberta pelo Sérgio (http://github.com/caelum/vraptor/issues/issue/213) estive alterando algumas coisas nesse componente.
E para minha surpresa todos os testes do JUnit falham levantando a exception conforme o seufagner falou. Bastou então eu tirar o jar do JPA1 do classpath e os testes do JUnit funcionaram. Ou seja, o Hibernate Validator procura por um JPA no classpath, e se encontrar ele faz um shift para o JPATraversableResolver que chama um método que só tem no jPA2. Aliás, estou chutando esse comportamento, preciso analisar os fontes do Hibernate Validator e ver isso nos fóruns do Hibernate.
Se eu estiver certo mesmo quando a ele procurar pelo JPA e se perder pegando a implementação errada, creio ser um bug, não? Afinal, sendo assim você nunca poderá usar HIbernate Validator com JPA1?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/05/2010 18:42:06
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
Garcia
Eu estou com o jar da JPA 2 que é distribuído e indicado pelo próprio Hibernate Validator. Por isso eu vou além, eu não posso usar Bean Validator sem usar JPA seja qual for a versão?
A dependência é opcional, porém, ao fazer download, o readme.txt que vem com a distribuição sugere:
"Using Hibernate Validator
-------------------------
- Copy hibernate-validator-*.jar together will all jar files from lib into the
classpath of your application. In case you are running on JDK5 you have to also include
all the jar files from the jdk5 subdirectory.
or ........."
E entre os jars está o da JPA 2 (jpa-api-2.0.Beta-20090815.jar)
Issue que cita dependência com JPA
http://opensource.atlassian.com/projects/hibernate/browse/HV-191
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
|
|