Bom Dia, pessoal estou tendo o seguinte problema somente com esta URL que passa 3 argumentos alguem poderia me ajudar o porque desta exception.
SEVERE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: java.lang.IllegalArgumentException: wrong number of arguments
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.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.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.tms.interceptor.AutorizacaoInterceptor.intercept(AutorizacaoInterceptor.java:72)
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:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
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:128)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:637)
Caused by: java.lang.IllegalArgumentException: wrong number of arguments
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:57)
... 43 more
não basta colar a exception… é bom tb colar o trecho de código onde ela ocorre… e se possivel, falar o que vc fez, para que ela acontecesse … por exemplo… acessei o link “tal” e ai a exception ocorreu…
mas esse erro acontece, quando o numero de argumentos de um método esta incorreto…
[quote=Lavieri]não basta colar a exception… é bom tb colar o trecho de código onde ela ocorre… e se possivel, falar o que vc fez, para que ela acontecesse … por exemplo… acessei o link “tal” e ai a exception ocorreu…
mas esse erro acontece, quando o numero de argumentos de um método esta incorreto…[/quote]
Segue o codigo ai
@Intercepts
public class AutorizacaoInterceptor implements Interceptor {
private final Result result;
private final Validator validator;
private final LoginModule loginModule;
private ResourceMethod method;
public AutorizacaoInterceptor(Result result, Validator validator, LoginModule loginModule) {
// TODO Auto-generated constructor stub
this.result = result;
this.validator = validator;
this.loginModule = loginModule;
}
@Override
public boolean accepts(ResourceMethod arg0) {
// TODO Auto-generated method stub
return true;
}
@Override
public void intercept(InterceptorStack arg0, ResourceMethod arg1,
Object arg2) throws InterceptionException {
// TODO Auto-generated method stub
if ((this.loginModule.isNotLogged()) && (!arg1.containsAnnotation(Liberado.class))) {
this.result.include("errors", Arrays.asList(new ValidationMessage("usuario inválido", "user"))).use(Results.logic()).redirectTo(AdmUserController.class).login();
} else {
if (this.loginModule.isNotLogged()) {
this.result.include("errors", Arrays.asList(new ValidationMessage("usuário ou senha inválida", "","error.user.invalid")));
} else {
this.result.include("errors", Arrays.asList(new ValidationMessage("", "","")));
}
//A exception esta ocorrendo aqui
arg0.next(arg1, arg2);
}
}
}
entao quando eu mando acessar por exemplo este link
localhost:8080/test/cliente/1/2/3 ele abre uma tela para edicao edito salvo depois mando abrir o mesmo registro novamente ai exception se eu der um f5 volta a funcionar normal.
[quote=Lucas Cavalcanti]quais são as lógicas que tão dando esse problema?
tipo, a lógica de edição, e a lógica de redirecionamento… manda o @Path mais a declaração dos métodos aqui… se possível os redirects tb…[/quote]
Que nem lucas fiz Sysout na logica do editar ele nem chegou a passar la ainda pelo que estou percebendo ou esta no intercept ou no router meu router esta assim
troca o forwardTo por redirectTo (por questão de boa prática) e o getClass() por this.classe (se isso for a classe do controller, pq podem ter proxies envolvidos)
em qual lógica tá passando que dá esse problema então? e qual redirect está sendo problemático?
habilita o log de debug do vraptor e posta o log da requisição problemática… de preferencia em um anexo, não no corpo da mensagem
[quote=Lucas Cavalcanti]troca o forwardTo por redirectTo (por questão de boa prática) e o getClass() por this.classe (se isso for a classe do controller, pq podem ter proxies envolvidos)
em qual lógica tá passando que dá esse problema então? e qual redirect está sendo problemático?
habilita o log de debug do vraptor e posta o log da requisição problemática… de preferencia em um anexo, não no corpo da mensagem[/quote]