[RESOLVIDO]erro jsp/ vraptor

46 respostas
T

Pessoal estou tentando configurar o validator do vraptor mais não estou conseguindo aparece o erro abaixo :

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:86)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)


root cause 

java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
	net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
	net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
	net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
	net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:215)
	net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
	net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
	net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
	net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
	br.com.caelum.vraptor.proxy.AbstractCglibProxifier.enhanceTypeWithCGLib(AbstractCglibProxifier.java:46)
	br.com.caelum.vraptor.proxy.ObjenesisProxifier.proxify(ObjenesisProxifier.java:31)
	br.com.caelum.vraptor.view.DefaultValidationViewsFactory.instanceFor(DefaultValidationViewsFactory.java:65)
	br.com.caelum.vraptor.validator.DefaultValidator.onErrorUse(DefaultValidator.java:86)
	br.com.caelum.vraptor.validator.AbstractValidator.onErrorUsePageOf(AbstractValidator.java:55)
	br.com.AromaNaWeb.controller.ProdutosController.adiciona(ProdutosController.java:53)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:57)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

Se alguem puder me ajudar o erro acontece quando tento cadastrar um produto invalido de acordo com os criterios que especifiquei no controle mas so que nao aparece o erro aparece esta exception , e tambem não estou conseguindo usar o redirecionamento do vraptor para outra pagina por exemplo :

validator.onErrorUsePageOf(ProdutosController.class).adiciona(produto);
result.redirectTo(ProdutosController.class).lista();

Qualquer coisa eu envio o arquivo war por email se ficar mais facil pois o arquivo tem 16 mb e aqui so permiti 1 mb , mas entao estou no aguardo de ajuda …

46 Respostas

G

Poste o método completo pra ver melhor onde está o problema.
[]s

T

Está é a classe de controle do produto .

package br.com.AromaNaWeb.controller;




//import?s
import br.com.AromaNaWeb.dao.*;
import br.com.AromaNaWeb.modelo.Produto;
import br.com.caelum.vraptor.Validator;

import java.util.List;

import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.validator.ValidationMessage;




@Resource
public class ProdutosController { 
	
	private final ProdutoDao dao;
	private Validator validator;
	
	
	public ProdutosController(ProdutoDao dao, Result result, Validator validator) {
	this.dao = dao;
this.validator = validator;
	}	
	
public List<Produto> lista() {
	return dao.listaTudo();
}
public void adiciona(final Produto produto) {	
	
	
     // ESTÁ DANDO ERRO NESTA PARTE 	
	if (produto.getNome() == null || produto.getNome().length() < 3) {
		validator.add(new ValidationMessage(
		"Nome é obrigatório e precisa ter mais de 3 letras", "produto.nome"));
		}
		if (produto.getDescricao() == null || produto.getDescricao().length() > 40) {
		validator.add(new ValidationMessage(
		"Descrição é obrigatória não pode ter mais que 40 letras",
		"produto.descricao"));
		}
		if (produto.getPreco() <= 0) {
		validator.add(new ValidationMessage(
		"Preço precisa ser positivo", "produto.preco"));
		}
		
		validator.onErrorUsePageOf(ProdutosController.class).adiciona(produto);
	dao.salva(produto);
	//verificar por que o redirectTo abaixo não funciona .
	//result.redirectTo(ProdutosController.class).lista();

	}

public void formulario() {
}
public Produto edita(Long id) {
	return dao.carrega(id);
	}
	public void altera(Produto produto) {
	dao.atualiza(produto);
	//result.redirectTo(ProdutosController.class).lista();
	}
	public void remove(Long id) {
		Produto produto = dao.carrega(id);
		dao.remove(produto);
		}
}
O validator está sendo inplementado no metodo adicionar .
G

Tenta assim:

public void adiciona(final Produto produto) {	
validator.checking(new Validations() {
			{
				that(!produto.getDescricao().isEmpty(), "produto.descricao",
						"descricaoProduto.obrigatorio");
                                that(!produto.getDescricao().length() > 40), "produto.descricaoTamanho",
						"descricaoTamanhoProduto.obrigatorio"); 
				that(!produto.getPreco() <= 0, "produto.precoInvalido",
						"precoProduto.invalido");
				that(produto.getPreco() != null, "produto.preco",
				"precoProduto.obrigatorio");
				
	        }
	});
	validator.onErrorRedirectTo(this).adiciona(produto);
	dao.salva(produto);
      result.use(Results.logic()).redirectTo(ProdutoController.class).lista();
	}

E lá no seu messages.properties adiciona as mensagens de erro pro usuario ver na jsp:

descricaoProduto.obrigatorio = Informe a descrição do produto
descricaoTamanhoProduto.obrigatorio = Informe uma descrição com menos de 40 caracteres
precoProduto.invalido = Preço deve ser maior que zero
precoProduto.obrigatorio = Informe um preço para o produto

Abraço!

T

onde coloco este arquivo message.propeties ? :oops:

G

Coloca na sua /src, o nome é “messages.properties”.

T

o eclipse esta apresentando um erro de configuração de build path…

G

Que erro é esse? Vc colocou todos os jars necessários na sua /lib?

T

sim coloquei, o erro que tá acontecendo é

“the type org.hamcrest.Matcher cannot be resolved. it s indiretly referenced from requerid .class file”

G

Vc possui o hamcrest-all-1.3RC0.jar na sua /lib? Se não tiver, vá na pasta do VRaptor que vc baixou e veja se está na pasta “optional”, se não estiver lá, baixa da internet esse jar e coloque na /lib:
https://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-all-1.3RC0.jar&can=2&q=

Dê um “refresh” no seu projeto, depois tente novamente.

T

ok tentei os erros foram corrigidos o projeto foi compilado mais na hora de executar lança essa exception abaixo :

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.NullPointerException
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:86)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)


root cause 

java.lang.NullPointerException
	br.com.AromaNaWeb.controller.ProdutosController.adiciona(ProdutosController.java:41)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:57)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.

aparentemente é de objeto nulo mas eu não consigo resolver …

G

No editor do Eclipse, habilite o “show line numbers”, e poste a linha 41 do seu ProdutoController:
Veja tb como vc está mandando os parâmetros na JSP, poste o seu form tb, está chegando null lá.

T

o erro está neste trecho

validator.checking(  new Validations()

A classe toda e essa ai o metodo adiciona verifica e grava as informações mas quem chama o formulario é o metodo formulario , lembrando que não estou tambem conseguindo redirecionar de uma jsp para outra

package br.com.AromaNaWeb.controller;


//import?s
import br.com.AromaNaWeb.dao.*;
import br.com.AromaNaWeb.modelo.Produto;
import br.com.caelum.vraptor.Validator;

import java.util.List;

import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.validator.ValidationMessage;
import br.com.caelum.vraptor.validator.Validations;
import br.com.caelum.vraptor.view.Results;




@Resource
public class ProdutosController { 
	
	private final ProdutoDao dao;
	private Validator validator ;
	private Result result;
	
	public ProdutosController(ProdutoDao dao, Result result) {
	this.dao = dao;
	
	this.validator = validator;
	}	
	
public List<Produto> lista() {
	return dao.listaTudo();
}
    
	//verificar por que o redirectTo abaixo não funciona .
	//result.redirectTo(ProdutosController.class).lista();

public void adiciona(final Produto produto) {	

	validator.checking(  new Validations() {
				{that(!produto.getDescricao().isEmpty(), "produto.descricao",
							"descricaoProduto.obrigatorio");
	                                that(!(produto.getDescricao().length() > 40), "produto.descricaoTamanho",
							"descricaoTamanhoProduto.obrigatorio"); 
					that(!(produto.getPreco() <= 0), "produto.precoInvalido",
							"precoProduto.invalido");
					that(produto.getPreco() != null, "produto.preco",
					"precoProduto.obrigatorio");
					
		        }
		});
		validator.onErrorRedirectTo(this).adiciona(produto);
		dao.salva(produto);
	    
		result.use(Results.logic()).redirectTo(ProdutosController.class).lista();
		}

public void formulario() {
}
public Produto edita(Long id) {
	return dao.carrega(id);
	}
	public void altera(Produto produto) {
	dao.atualiza(produto);
	//result.redirectTo(ProdutosController.class).lista();
	}
	public void remove(Long id) {
		Produto produto = dao.carrega(id);
		dao.remove(produto);
		}

e segue o form abaixo :

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="adiciona">
<fieldset>
<legend>Adicionar Produto</legend>
<label for="nome">Nome:</label>
<input id="nome" type="text" name="produto.nome" value="${produto.nome }"/>
<label for="descricao">Descrição:</label>
<textarea id="descricao" name="produto.descricao">${produto.descricao }</textarea>
<label for="preco">Preço:</label>
<input id="preco" type="text" name="produto.preco" value="${produto.preco }"/>
<button type="submit">Enviar</button>
</fieldset>
</form>

</body>
</html>

é isso ai se vc quiser envio o war com o projeto completo para vc por email .

G

Cometi um erro, no seu método adiciona em caso de erro têm que voltar pro formulário e não o próprio método:

validator.onErrorRedirectTo(this).formulario();

No browser vc chama o formulario assim:
http://localhost:8080/aromanaweb/produtos/formulario
Ou se colocou com Maiúsculas no começo:
http://localhost:8080/AromaNaWeb/produtos/formulario
Sendo que o certo seria td minúsculo.
Se ele conseguir adicionar o produto vai pro método lista(), deixe assim:

public void lista() {
		result.include("produtos", dao.listaTudo());		
	}
T

agora ta aparecendo o mesmo erro mas so que referencia as linhas 47 e 42

at br.com.AromaNaWeb.controller.ProdutosController$1.<init>(ProdutosController.java:47) at br.com.AromaNaWeb.controller.ProdutosController.adiciona(ProdutosController.java:42)
que são respectivamente :

// este é o erro 47
that(!(produto.getPreco() <= 0), "produto.precoInvalido",
							"precoProduto.invalido");

// e este é o erro 42	
validator.checking(  new Validations() {

Segue resultado .

G

O atributo preço deve ser do tipo BigDecimal na classe Produto.

T

agora restou o da linha 42 ta apontando para está linha .

validator.checking(  new Validations() {

este é a exception completa

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.NullPointerException
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:86)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)


root cause 

java.lang.NullPointerException
	br.com.AromaNaWeb.controller.ProdutosController.adiciona(ProdutosController.java:42)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:57)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.


--------------------------------------------------------------------------------
G

Se o seu preço é BigDecimal, tente fazer a verificação assim:

that(!(produto.getPreco().compareTo(BigDecimal.ZERO) <= 0, "produto.precoInvalido", "precoProduto.invalido");
T

infelismente continua dando o erro no trecho abaixo

validator.checking(new Validations() {

vc tem gmail para eu te enviar o projeto completo para vc ver para mim ? pois o projeto tem 16 mb.

G

Infelizmente não é possível por email, use o fórum para obter ajuda.
Confira se o seu método está assim.

public void adiciona(final Produto produto) {	
validator.checking(new Validations() {
			{
				that(!produto.getDescricao().isEmpty(), "produto.descricao","descricaoProduto.obrigatorio");
                                that(!produto.getDescricao().length() > 40), "produto.descricaoTamanho",	"descricaoTamanhoProduto.obrigatorio"); 
				that(!(produto.getPreco().compareTo(BigDecimal.ZERO) <= 0, "produto.precoInvalido", "precoProduto.invalido");
				that(produto.getPreco() != null, "produto.preco", "precoProduto.obrigatorio");
				
	        }
	});
	validator.onErrorRedirectTo(this).formulario();
	dao.salva(produto);
      result.use(Results.logic()).redirectTo(ProdutoController.class).lista();
	}

Pare o server Tomcat, clique com o direito no server e dê um “clean”, depois dê um start do Tomcat novamente

T

está dando o mesmo erro no validation ta reconhecendo exception nulo …
cara eu coloquei o projeto la no skydriver da microsoft o link é http://cid-758ca680486ddf11.office.live.com/browse.aspx/.Public?uc=1
se puder me ajuda ou souber de alguem que possa …
So tenho a agradecer pela ajuda que vc me prestou até agora , muito obrigado mesmo …

G

Faltou um parâmetro no seu form:

<form action="adiciona" method="post">
T

arrumei o post mas ainda esta o mesmo erro … tentei achar mas não consegui …

G

Salva o método adiciona ou comenta ele e usa este aqui:

public void adiciona(final Produto produto) {	

if(!produto.getDescricao().isEmpty()) {
validator.add(new ValidationMessage( "Informe uma descrição","produto.descricao"));
}

if(!produto.getDescricao().length() > 40) {
validator.add(new ValidationMessage( "O produto deve ter menos que 40 caracteres","produto.descricaoTamanho"));
}

if(!(produto.getPreco().compareTo(BigDecimal.ZERO) <= 0) {
validator.add(new ValidationMessage( "O preço deve ser maior que zero","produto.precoInvalido"));
}

if(produto.getPreco() != null) {
validator.add(new ValidationMessage( "Informe o preço do produto","produto.preco"));
}

validator.onErrorRedirectTo(this).formulario();
	dao.salva(produto);
      result.use(Results.logic()).redirectTo(ProdutoController.class).lista();
	}
L

vc precisa receber o Validator no construtor…

vc fez um this.validator = validator, mas não recebeu o validator no construtor.

T

agora é neste trecho do metodo que vc me passou que está dando o erro

validator.add(new ValidationMessage( "Informe uma descrição","produto.descricao"));

O erro é o mesmo …

G

Confere aí:

public class ProdutosController {   
       
     private ProdutoDao dao;  
     private Validator validator;
    private Result result;  
       
       
     public ProdutosController(ProdutoDao dao, Result result, Validator validator) {  
     this.dao = dao;  
 this.validator = validator;  
this.result = result;

// restante do código
L

ainda tá dando nullPointer?

seu construtor está assim?

public XXXController(...., Validator validator) {
    //...
    this.validator = validator;
}
T

sim arrumei desse jeito passando o parametro do validator no construtor , limpei o projeto , e mandei compilar de novo e não funcionou, e tambem os redirects não estão funcionando .
como por exemplo

result.redirectTo(ProdutosController.class).lista();

dá erro

L

qual erro?

vc tá com a última versão do VRaptor?

T

sim 3.2 , se vc quiser verificar meu projeto deixei o link acima

L

qual erro tá dando?

T
br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:86)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)


root cause 

java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer
	br.com.caelum.vraptor.proxy.AbstractCglibProxifier.enhanceTypeWithCGLib(AbstractCglibProxifier.java:46)
	br.com.caelum.vraptor.proxy.ObjenesisProxifier.proxify(ObjenesisProxifier.java:31)
	br.com.caelum.vraptor.view.DefaultValidationViewsFactory.instanceFor(DefaultValidationViewsFactory.java:65)
	br.com.caelum.vraptor.validator.DefaultValidator.onErrorUse(DefaultValidator.java:86)
	br.com.caelum.vraptor.validator.AbstractValidator.onErrorRedirectTo(AbstractValidator.java:51)
	br.com.AromaNaWeb.controller.ProdutosController.adiciona(ProdutosController.java:56)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:57)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.

Este erro acima esta dando quando executo este redirecionamento abaixo :

result.redirectTo(ProdutosController.class).lista();
L

vc tah com qual jar do cglib no classpath? Tem mais de um?

o certo é deixar o que está no VRaptor: o cglib-nodep-2.1._3.jar

G

Lucas, aquele método que vc me passou para validar uma busca parou de funcionar, era pra barrar uma busca vazia, embora a validação funcione, uma busca sem preencher nada retorna todos os registros do banco. Como o autor do tópico está levando NPE em relação a validação desconfio que o validator está problemas… "/

T

estava com o 2.1 arrumei este ai o 2.1._3 e vou testar o projeto novamente …

L

o problema não é no validator, pelo menos não parece ser.

na sua lógica de validação, Guevara, tinha vários casos possíveis de nullPointer que vc não estava evitando

T

agora este codigo

result.redirectTo(ProdutosController.class).lista();

está dando o erro abaixo :

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.NullPointerException
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:86)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)


root cause 

java.lang.NullPointerException
	br.com.AromaNaWeb.controller.ProdutosController.adiciona(ProdutosController.java:58)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:57)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:90)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.


--------------------------------------------------------------------------------
L

a linha:

br.com.AromaNaWeb.controller.ProdutosController.adiciona(ProdutosController.java:58)

é a que vc passou?

result.redirectTo(ProdutosController.class).lista();

se sim, vê se o result está sendo inicializado corretamente. Algo como, no construtor da classe:

public ProdutosController(Result result, ....) {
     this.result = result;
     //...
}
G

Nossa, tive que usar o StringUtils tb para outros dois atributos que são String, era esse o problema, o isEmpty() não vai nem por um decreto. Resolvi aqui.

T

apareceu a mensagem de erro do validator , so que agora so fica na mensagem toda hora , mas eu vou tentar ver isto aqui pois o erro principal já foi resolvido , muito obrigado pela ajuda e atenção de vocês …

G

Tenta usar o validator no estilo Clássico e Fluente:
http://vraptor.caelum.com.br/documentacao/validacao/
O primeiro que mandei é o Fluente e usa o messages.properties.
Aí é só acertar os detalhes.

T

Agora sim ficou perfeito obrigado …

G

Não esqueça do [Resolvido] editando o seu primeiro post. =)

T

como que eu faço para mostrar que ta resolvido

G

É só visualizar a sua primeira postagem neste tópico, ao lado terá um botão “editar”, clique nele e edite o título do tópico, colocando o [Resolvido].

T

Ok obrigado , agora vou continuar ralando aqui, estou fazendo uma loja virtual , mas nunca tinha programado com java para web por isto estou apanhando …

Criado 1 de novembro de 2010
Ultima resposta 2 de nov. de 2010
Respostas 46
Participantes 3