[RESOLVIDO] - NoClassDefFoundError VRaptor no GAE

14 respostas
D

Eu continuo tentando fazer um CRUD usando o vraptor no GAE, mais estou meio sem sorte, o erro agora é esse:

<blockquote>Caused by: java.lang.NoClassDefFoundError: org/objenesis/ObjenesisStd

at br.com.caelum.vraptor.proxy.ObjenesisProxifier.proxify(ObjenesisProxifier.java:32)

at br.com.caelum.vraptor.view.DefaultLogicResult.redirectTo(DefaultLogicResult.java:108)

at br.com.caelum.vraptor.core.DefaultResult.redirectTo(DefaultResult.java:76)

at br.com.caelum.vraptor.core.DefaultResult.redirectTo(DefaultResult.java:85)

at com.teste2.controller.PessoaController.salvar(PessoaController.java:33)

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 com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)

at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:57)

 52 more

Caused by: java.lang.ClassNotFoundException: org.objenesis.ObjenesisStd

at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:151)

at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

</blockquote>

Coloquei o objenesis-1.1.jar no path da aplicação, e me da outro erro:

Conferi os jars que vem no project-blank-gae, e realmente não tem o objenesis-1.1.jar.

E detalhe, os parâmetros que vem do form estão vindo null.

O que eu estou fazendo de errado?

14 Respostas

zoren

Vai colocando os Jars ai, até a hora que os erros acabarem

D

Os jars que estão no classpath são os necessários para o projeto.
Eu peguei o project-blanck-gae no site do vraptor.
Na teoria não tem mais nenhum jar para adicionar.

zoren

as vezes o seu servidor não tem todos os jars necessários

Lucas_Cavalcanti

não pode ter o objenesis mesmo…
vc está com as classes do blank-project-gae que configuram o vraptor? (vraptor-gae.jar e a configuração abaixo no web.xml):

<context-param>
		<param-name>br.com.caelum.vraptor.packages</param-name>
		<param-value>br.com.caelum.vraptor.gae</param-value>
	</context-param>
D

opa Lucas era isso mesmo, tinha esquecido de colocar essa configuração no web.xml.

D

Vocês sabem me dizer o porque da jstl c:forEach, não funciona no gae?

Eu tenho meu jsp assim:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<h1>Lista de Pessoas</h1>
<table>
	<thead>
		<tr>
			<th>CÓDIGO</th>
			<th>NOME</th>
		</tr>
	</thead>
	<tbody>
		<c:forEach var="item" items="${list}" varStatus="s" >
			<tr>
				<td width="15px" align="center">${item.id}</td>
				<td>${item.nome}</td>
			</tr>
		</c:forEach>
	</tbody>
</table>

</body>
</html>

Mais esta dando esse erro:

javax.servlet.ServletException: java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;

Procurando no google achei esse link[url]http://groups.google.com/group/google-appengine-java/browse_thread/thread/a37b7710568bf54e/1bd14230b3924661?lnk=raot&pli=1[/url], fiz conforme esta indicado lá, mais também não resolveu.

Lucas_Cavalcanti

isso parece pau de versão de jar… tenta trocar a versão do seu jstl.jar ou servlet-api.jar

Paulo_Silveira

pois é. o jetty do gae nao deve ser compativel com essa jstl.

D

Estou usando a versão jstl-api1.2 e jstl-impl-1.2, e pelo que eu pesquisei essa é a ultima versão do jstl.
O servelet-api que o Lucas mensionou, qual seria?
Por default o gae vem com esses jars :

appengine-api-1.0-sdk-1.3.1
appengine-api-labs-1.3.1
appengine-jsr107cache-1.3.1
datanucleus-appengine-1.0.5.final
datanucleus-core-1.1.5
datanucleus-jpa-1.1.5
geronimo-jpa_3.0_spec-1.1.1
geronimo-jta_1.1_spec-1.1.1
jdo2-api-2.3-eb
jsr107cache-1.1

Teria uma outra alternativa ao c:forEach?

Lucas_Cavalcanti

tenta tirar o jstl-api e o jstl-impl do WEB-INF/lib do seu projeto… às vezes dá conflito com o que já tá no servidor

D

Eu já fiz isso também, com os jars ou sem o resultado é o mesmo.

Lucas_Cavalcanti

remova os jars, e tente dar um clean no projeto… tenta ver se o plugin do gae tá limpando a pasta de destino tb…

D

Muito bom Lucas, funcionou.
Fiz um clean no projeto.
E quando fui verificar a pasta lib, lá estava o danado dos jars de jstl, mesmo não estando no classpath, estranho não.

Mais é isso ai, muito obrigado.

G

Lucas, notei que o vraptor-blank-gae está vindo com o jstl-*. Como isso dá um conflito no GAE/J como o Paulo Silveira comentou, creio que seja legal alterar o build.xml para ignorar esses dois jars. Agora a pouco fazendo testes no GAE/J tive o mesmo erro.

Criado 10 de março de 2010
Ultima resposta 16 de mai. de 2010
Respostas 14
Participantes 5