Erro invoke method usando VRAPTOR

1 resposta
G

Ola pessoa no momento em que faço uma validação se o usuario existir no banco, se caso ele exista eu redireciono ele pra mesma pagina mas da o seguinte erro:

Caused by: net.vidageek.mirror.exception.ReflectionProviderException: Could not invoke method newAprovado
	at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:45)
	at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
	at br.com.caelum.vraptor.view.DefaultValidationViewsFactory$2.intercept(DefaultValidationViewsFactory.java:103)
	at br.com.caelum.vraptor.proxy.CglibProxifier$2.intercept(CglibProxifier.java:95)
	at br.jus.jfce.controllers.AprovadoController$$EnhancerByCGLIB$$1c3e5ae4.newAprovado(<generated>)
	at br.jus.jfce.controllers.AprovadoController.create(AprovadoController.java:191)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
	... 53 more

segue os metodos para que vcs possam ver

esse metodo é quando o usuario clica em cadastrar, no caso é onde tem a validação e o redirecionamento.
@Post("/aprovados")
	public void create(Aprovado aprovado) {	
		aprovado.setNome(aprovado.getNome().toUpperCase());
			boolean existeAprovado = repository.consultarAprovadoPorCategoria(aprovado);
			if(!existeAprovado){			
				if(aprovado.getConcorrervagas() == null){
					aprovado.setConcorrervagas(false);
				}
				if(aprovado.getTipodeficiencia().getId() == null){
					aprovado.setTipodeficiencia(null);
				}
				if(aprovado.getEspecialidade().getId() == null){
					aprovado.setEspecialidade(null);
				}
			validator.validate(aprovado);
			validator.onErrorForwardTo(this).newAprovado();
			repository.create(aprovado);
			validator.add(new I18nMessage(TypeMessage.SUCCESS, "aprovado.inserido"));
			validator.onSuccessUsePageOf(this).index(null);	
			}else{
				validator.add(new I18nMessage(TypeMessage.ERROR, "aprovado.erroAoInserir"));
				result.redirectTo(newAprovado());
			}			
	}
e aqui é onde ele chama a pagina
@Cria
	@Get("/aprovados/new")
	public Aprovado newAprovado() {
		result.include("especialidades", especialidadeRepository.findAll()); 
		result.include("areas", areaRepository.findAll());
		result.include("tipoDeficiencias", tipoDeFicienciaRepository.findAll());
		result.include("concursos", concursoRepository.findAll());
		result.include("categoriaFuncional", categoriaFuncionalRepository.findAll());		
		
		return new Aprovado();
	}

alguem já passou por esse erro?

1 Resposta

B

Nessa linha “result.redirectTo(newAprovado());” você tem que dizer para o método “redirectTo” a classe onde fica a lógica que será executada. Se for no mesmo Controller do método “create”, faz assim: “result.redirectTo(this).newAprovado();”.

Criado 2 de agosto de 2013
Ultima resposta 2 de ago. de 2013
Respostas 1
Participantes 2