VRaptor: validator.onErrorUse(page()).of(AnyController.class).anyMethod();

Salver galera! Está ocorrendo o erro abaixo ao chamar um método no controller para listar dados cadastrados no banco:

22/10/2012 11:38:04 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: There are validation errors and you forgot to specify where to go. Please add in your method something like:
validator.onErrorUse(page()).of(AnyController.class).anyMethod();
or any view that you like.
If you didn't add any validation error, it is possible that a conversion error had happened.
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.rkam.clog.interceptor.NoCacheInterceptor.intercept(NoCacheInterceptor.java:38)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at br.com.rkam.clog.outros.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:59)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:680)

Código do método lista do controller:

	@Get
	@Path("/apontamentosaida.listar")
	public void listar(ApontamentoSaida apontamentoSaida) {
		List<ApontamentoSaida> lista = service.pesquisar(apontamentoSaida);
		this.result.include("lista", lista);
		
		
	}

Código do jsp:

<form id="pesquisarForm" name="pesquisarForm" action="<c:url value='/apontamentosaida.listar'/>" method="get">
	<c:if test="${not empty mensagemAlerta}">
		<div id="msgAlert">
		<p>&nbsp; ${mensagemAlerta}</p>
		&lt;/div&gt;
	&lt;/c:if&gt; 
	&lt;input type="hidden" name="modal" value="${param.modal}"/&gt;
	&lt;table id="tbFormulario" cellspacing="0" cellpadding="5"&gt;
		&lt;tr&gt;
			&lt;td colspan="2" class="tdTituloPagina"&gt;&lt;span class="cartola"&gt;
				<img    />&nbsp;Pesquisa	de Apontamento de saídas&lt;/span&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Setor:&lt;/td&gt;
			&lt;td&gt; 
		     	&lt;h:comboAutoComplete id="setor" listaCombo="${listaSetores}" bean="apontamentoSaida.setor" action="/apontamentosaida/autocomplete.setor" valueRecebe="${apontamentoSaida.setor.id}" valueSubmete="apontamentoSaida.setor.id" method="GET" formId="formSetor"/&gt;
		 &lt;/td&gt;
		&lt;/tr&gt;    
		&lt;tr&gt;
			&lt;td&gt;Motorista:&lt;/td&gt;
			&lt;td&gt; 
		     	&lt;h:comboAutoComplete id="motorista" listaCombo="${listaMotoristas}" bean="apontamentoSaida.motorista" action="/apontamentosaida/autocomplete.motorista" valueRecebe="${apontamentoSaida.motorista.id}" valueSubmete="apontamentoSaida.motorista.id" method="GET" formId="formMotorista"/&gt;
		 &lt;/td&gt;
		&lt;/tr&gt;    
		&lt;tr&gt;
			&lt;td&gt;Veículo:&lt;/td&gt;
			&lt;td&gt; 
		     	&lt;h:comboAutoComplete id="veiculo" listaCombo="${listaVeiculos}" bean="apontamentoSaida.veiculo" action="/apontamentosaida/autocomplete.veiculo" valueRecebe="${apontamentoSaida.veiculo.id}" valueSubmete="apontamentoSaida.veiculo.id" method="GET" formId="formVeiculo"/&gt;
		 &lt;/td&gt;
		&lt;/tr&gt;    
		&lt;tr&gt;
		&lt;td colspan="2" class="botoes"&gt;
			&lt;input id="btnPesquisar" type="image" src="&lt;c:url value="img/bt_consultar_blue.gif" /&gt;&quot; /&gt;
			&lt;c:if test="${empty param.modal}"&gt;
				&lt;c:if test="${permissoesUsuario['APONTAMENTO_SAIDA_FORMULARIO'] != null}"&gt;				
				     &lt;input type="image" id="btnAdd" src="&lt;c:url value="img/bt_adicionar_blue.gif" /&gt;&quot; /&gt;
				&lt;/c:if&gt;
			&lt;/c:if&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/table&gt;
&lt;/form&gt;

Provavelmente essa linha:

está lançando uma exception. O ideal é nunca deixar as Exceptions saírem da sua action (com exceção da ValidationException do VRaptor).

Portanto, coloque um bloco try e catch. No bloco catch, coloque as informações em um log para você saber o que está acontecendo…

Ok Rafael! Adicionei o bloco do try-catch:

		try{
			List&lt;ApontamentoSaida&gt; lista = service.pesquisar(apontamentoSaida);
			this.result.include("lista", lista);
			
		}catch (Exception e) {
			e.printStackTrace();
			e.getMessage();
		}

O Erro segue sendo o mesmo e ocorre depois da execução do método.

Geralmente ajudar ler a mensagem do erro:

There are validation errors and you forgot to specify where to go. Please add in your method something like:
validator.onErrorUse(page()).of(AnyController.class).anyMethod();
or any view that you like.
If you didn’t add any validation error, it is possible that a conversion error had happened.

ou seja, provavelmente eh um erro de conversão… tipo texto num campo numerico.

boa tarde

so uma duvida, vc criou a pasta “apontamentosaida.listar” no seu web-inf/jsp

e outra duvida, se vc ja criou a pasta vc criou o arquivo lista.jsp

vc ja tentou utilizar na sua uri ao em vez de usar “/apontamentosaida.listar” usar “/apontamentosaida/listar”

eu nunca peguei um erro igual ao seu, mas tambem nunca usei com vraptor uri dessa “/apontamentosaida.listar”

sei la faz um teste ai e vê o que acontece

Apenas troquei os campos de <h:comboAutoComplete> por <input> simples funcionou. Porém usando usando <h:comboAutoComplete> os dados são enviados para o controller certinho, carrega os dados do banco, faz o include dos dados, após finalizar a execução do método que ocorre o erro.

Estou usando o Tiles, o mapeamento do path fica em xml.

se esse h: eh o do jsf, nao vai funcionar com o VRaptor mesmo…

É uma taglib criada para usar o autocomplete do jQuery. O código do autocomplete está nesse post:http://www.guj.com.br/java/283814-resolvidovraptor-jquery-combo–autocomplete