[RESOLVIDO] Hibernate Validator não funciona - FJ28 Vraptor

Olá caros colegas,

                      estou fazendo a apostila fj28 do VRaptor e me encontrei com um erro. Eu estou fazendo o exercicio de validaçao do atraves do hibernate. Eu fiz conforme a apostila todos os passos.

minha classe Produto:

[code]
package br.com.caelum.goodbuy.modelo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import org.hibernate.validator.Length;
import org.hibernate.validator.Min;
import org.hibernate.validator.NotNull;

@Entity
public class Produto {

@Id
@GeneratedValue
private Long id;

@NotNull
@Length(min = 3)
private String nome;

@NotNull
@Length(max = 40)
private String descricao;

@Min(0)
private Double preco;


public Long getId() {
	return id;
}

public void setId(Long id) {
	this.id = id;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public String getDescricao() {
	return descricao;
}

public void setDescricao(String descricao) {
	this.descricao = descricao;
}

public Double getPreco() {
	return preco;
}

public void setPreco(Double preco) {
	this.preco = preco;
}

}[/code]

Metodo adiciona do ProdutosController:

//adiciona utiliza o validator do Hibernate
	public void adiciona(final Produto produto) {
        validator.validate(produto);
        validator.onErrorUsePageOf(ProdutosController.class).formulario();
        dao.salva(produto);
        result.redirectTo(this).lista();
    }

meu erro foi esse:

abaixo eu posto a foto dos meus jars, antes dava erro por q nao tinha os jars do validator, eu antes coloquei todos que vi que faltavam atraves da pasta do Vraptor>Optional>hibernate e somente depois que li vi que era necessario somente um arquivo(hibernate-validator-X.X.X.jar ) mas acho que não tem problema nenhum colocar os outros, coloquei para evitar passar por isto novamente.


vc ta com jar repetidos com versão diferente tenta tirar as repetições e testa novamente

por ex:

hibernate-validator-3.1.ga.jar
hibernate-validator-4.0.2.ga.jar

tire um dos dois

commons-collections-3.1.jar
commons-collections-3.1.2.jar

hibernate3.jar
hibernate-3.6.1.jar

log4j-1.2.16.jar
log4j-1.2.17.jar

caso isso não de certo

delete todos os jar da pasta lib e depois adicione novamente seguindo a sequencia
jars:
pasta
1º mandatory
2º containers/spring ou um dos outros. não pode ser todos escolha um
3º optional/hibernate
4º o jar do vraptor

rode e teste novamente a aplicação

não pode haver jars repetidos na pasta lib

Resolveu?

foi isso mesmo, a solução foi apagar todos e recolocar os jars necessarios, muito obrigado DaniloAndrade e espinheira!
Achei muito interessante a maneira de validar com Hibernate, mas tive uma dúvida, no caso do preço eu quis postar uma mensagem como todos os outros para que posteriormente utilizar internacionalizaçao. Eu deixei assim a variavel preco:

@NotNull(message="{preco.vazio}")
	@Min(value=0, message="{preco.negativo}")
	private Double preco;

na apostila estava assim:

	@Min(0)
	private Double preco;

O correto seria validar e mostrar o erro quando colocasse numeros negativos e me funciona, sendo que tive um exemplo que coloquei o valor 0 e ele não validou e registrou no banco o valor 0 que não estaria correto em colocar um valor 0, daí como faria para que não colocasse um valor 0 e tampouco negaivo no banco?
tentei colocar (0.1, 0,1) como minimo e nao funciona!

Segundo a documentação dessas anotações (@Min, @Max e outras), a validação não funciona para doubles ou floats. O motivo pode ser encontrado aqui: http://stackoverflow.com/questions/7422803/why-do-bean-validation-min-max-constraints-not-support-the-double-type.