RedirectTo no VRaptor - ClassNotFoundException [RESOLVIDO]

4 respostas
G

Galera,

Estou com o seguinte problema no VRaptor:

Ao o usuario preencher um formulario de 3 campos e clicar no botao "Enviar", o NavigationController deveria me encaminhar para a página index, porém, está sendo apresentado o erro abaixo. Eu tenho 2 classes Controller, sendo que o método que chama a index está no MainController.class.

Segue os códigos abaixo e o erro apresentado:

Quem puder me ajudar eu agradeço.

br.com.caelum.vraptor.InterceptionException: an exception was raised while executing resource method
	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:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	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:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	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: org/objectweb/asm/Type
	net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:180)
	net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:66)
	net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
	br.com.caelum.vraptor.proxy.AbstractCglibProxifier.enhanceTypeWithCGLib(AbstractCglibProxifier.java:28)
	br.com.caelum.vraptor.proxy.ObjenesisProxifier.proxify(ObjenesisProxifier.java:31)
	br.com.caelum.vraptor.view.DefaultLogicResult.redirectTo(DefaultLogicResult.java:108)
	br.com.caelum.vraptor.core.DefaultResult.redirectTo(DefaultResult.java:76)
	br.site.controller.NavigationController.faleConoscoPost(NavigationController.java:52)
	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:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	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:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	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.ClassNotFoundException: org.objectweb.asm.Type
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
	net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:180)
	net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:66)
	net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
	br.com.caelum.vraptor.proxy.AbstractCglibProxifier.enhanceTypeWithCGLib(AbstractCglibProxifier.java:28)
	br.com.caelum.vraptor.proxy.ObjenesisProxifier.proxify(ObjenesisProxifier.java:31)
	br.com.caelum.vraptor.view.DefaultLogicResult.redirectTo(DefaultLogicResult.java:108)
	br.com.caelum.vraptor.core.DefaultResult.redirectTo(DefaultResult.java:76)
	br.site.controller.NavigationController.faleConoscoPost(NavigationController.java:52)
	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:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	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:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	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)

faleConosco.jsp

<form id="formFaleConosco" action="<c:url value="/faleConosco" />" method="post">
		
		<table border="0" cellspacing="10" width="100%" style="float: left;">
			
			<tr>
				<td><br /></td>
				<td><br /></td>
			</tr>
			
			<tr>
				<td width="110px" class="tdRight"><label for="nome">Nome: </label></td>
				<td><input type="text" id="nome" name="faleConosco.nome" value="${faleConosco.nome}" /></td>
			</tr>
			
			<tr>
				<td class="tdRight"><label for="email">E-mail: </label></td>
				<td><input type="text" id="email" name="faleConosco.email" value="${faleConosco.email}" /></td>
			</tr>
			
			<tr>
				<td class="tdRight"><label for="duvida">Dúvida: </label></td>
				<td><textarea id="duvida" name="faleConosco.duvida" value="${faleConosco.duvida}"></textarea></td>
			</tr>
			
			<tr>
				<td><br /></td>
				<td><br /></td>
			</tr>
			
			<tr>
				<td colspan="2" style="text-align: center;">
					<button type="submit">Enviar</button>
				</td>
			</tr>
			
		</table>
	</form>

NavigationController.java

package br.site.controller;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.site.dao.FaleConoscoDAO;
import br.site.modelo.FaleConosco;
import br.site.modelo.PedidosOracao;

@Resource
public class NavigationController {
	
	private final FaleConoscoDAO dao;
	private Result result;

	public NavigationController(FaleConoscoDAO dao, Result result) {
		this.dao = dao;
		this.result = result;
	}

        @Get
	@Path("/faleConosco")
	public void faleConosco() {
	}
	
	@Post
	@Path("/faleConosco")
	public void faleConoscoPost(FaleConosco faleConosco) {
		//dao.salvar(faleConosco);
		result.redirectTo(MainController.class).index();
	}

MainController.class

package br.site.controller;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.site.modelo.Endereco;
import br.site.modelo.Religiao;
import br.site.modelo.Usuario;

@Resource
public class MainController {

	public MainController() {
	}

	@Get
	@Path("/index")
	public void index() {
		System.out.println("Teste");
	}

4 Respostas

renanpto

Parece estar faltando algum jar em seu classpath…

J

E ae cara beleza?

Acredito que falte algum jar, por causa do erro acima. Provavelmente o asm.jar ou algo assim, não estou em casa para ver o jar correto. Mas o caminho é esse…

Abraço

Lucas_Cavalcanti

vc colocou no seu WEB-INF/lib todos os jars que estão em lib/mandatory do zip do vraptor?

G

Galera,

Eu fiz o que vocês me indicaram. Realizei uns testes com as bibliotecas que eu tinha.

Criei um projeto novo apenas para teste e coloquei todas as bibliotecas novamente, inclusive da pasta mandatory. Nesse teste, eu consegui enviar os dados do formulario e dar o redirectTo para outra pagina.

Daí eu deletei todas as bibliotecas do meu projeto, e copiei as do projeto teste que havia funcionado. Em seguida coloquei as bibliotecas do Hibernate que eu havia separado em uma pasta, e quando subi a aplicação e fui tentar fazer o teste, o mesmo erro de antes ocorreu.

A idéia que tive foi remover novamente todas as Libs, e acrescentar na pasta Lib do projeto as bibliotecas do Hibernate que vem dentro da pasta Optional do VRaptor. Após ter feito isso, a aplicação funcionou normalmente.

Não sei pq, mas o problema estava em alguma lib que eu tinha do Hib.

Agradeço a ajuda de todos.

Obrigado!

Criado 3 de junho de 2011
Ultima resposta 4 de jun. de 2011
Respostas 4
Participantes 4