[size=18]Bom Dia!!!
[b]Estou com um form onde disparo um get no jQuery para o controller que usa o vRaptor 3 e preciso que retorne um jSon com a mensagem após executar um sql no jdbc. Isso sempre funcionou … pelo menos em todos os métodos dos controllers que desenvolvo.
Ocorre que há uns 20 dias ocorre algo estranho, após executar o método no controller, como a mensagem …:
[/b]
<a class="mention" href="/u/get">@Get</a>
<a class="mention" href="/u/path">@Path</a>("/avaliacao/gravarAvaliacaoJson.json")
public void gravarAvaliacaoJson(Avaliacao avaliacao) {
if((avaliacao.getCidadao().getId()!=null)&&(avaliacao.getTurma().getId()!=null)
&&((avaliacao.getPeriodoAvaliativo1().getStatusAvaliativo().getId()!=null)
||(avaliacao.getPeriodoAvaliativo2().getStatusAvaliativo().getId()!=null)
||(avaliacao.getPeriodoAvaliativo3().getStatusAvaliativo().getId()!=null)
||(avaliacao.getPeriodoAvaliativo4().getStatusAvaliativo().getId()!=null)
||(avaliacao.getPeriodoAvaliativo5().getStatusAvaliativo().getId()!=null))){
avaliacao.setUsuario(this.usuarioWeb.getUsuario());
avaliacao = new AvaliacaoDao().gravarAvaliacao(avaliacao);
}
// até aqui o método ocorre tudo normal, grava no BD, retorna a mensagem … porém doravante … não funciona …
this.result.use(Results.json()).withoutRoot().from(avaliacao).include(“msg”).serialize();
/*
a classe Avaliacao contem o objeto (classe) Mensagem que contém o objeto (texto) descricao
*/
}
… no console do eclipse retorna o erro …:
May 14, 2012 11:16:42 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [default] in context with path [/letrando] 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:86)
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.gov.sp.guarulhos.letrando.infra.NoCacheInterceptor.intercept(NoCacheInterceptor.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.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:81)
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:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
e no retorno do inspector do google chrome, retorno a mensagem normal.
o Interceptor é …:
package br.gov.sp.guarulhos.letrando.interceptor;
import br.com.caelum.vraptor.InterceptionException;
import br.com.caelum.vraptor.Intercepts;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.core.InterceptorStack;
import br.com.caelum.vraptor.interceptor.Interceptor;
import br.com.caelum.vraptor.resource.ResourceMethod;
import br.gov.sp.guarulhos.letrando.controller.IndexController;
import br.gov.sp.guarulhos.letrando.infra.Restrito;
import br.gov.sp.guarulhos.letrando.modelo.Msg;
import br.gov.sp.guarulhos.letrando.session.UsuarioWeb;
@Intercepts
public class AutorizacaoInterceptor implements Interceptor {
private Result result;
private UsuarioWeb usuarioWeb;
public AutorizacaoInterceptor(Result result, UsuarioWeb usuarioWeb){
this.result = result;
this.usuarioWeb = usuarioWeb;
}
public boolean accepts(ResourceMethod method) {
boolean teste;
try{
teste = !this.usuarioWeb.getLogado();
}catch (NullPointerException e) {
teste = true;
}
return teste && method.containsAnnotation(Restrito.class);
}
public void intercept(InterceptorStack stack, ResourceMethod method,Object resourceInstance)
throws InterceptionException {
this.result.redirectTo(IndexController.class).msg(new Msg(1, 0, "Erro de Sessao", "Ou voce nao acessou o sistema ou tua sessao expirou. Por gentileza, acesse o sistema pela tela de login."));
}
}
o result jSon do vRaptor está retornando polúído …
{
“msg”: {
“descricao”: “Avaliacao gravada com sucesso.”,
“titulo”: “Obrigado”
}
}
Página de Aviso de Erro: Java Lang Exception
Atenção! Ocorreu algum problema nessa ação. Por favor, contate o administrador do sistema.
Obrigado pessoal.
[/size]