Hibernate + Eclipse duvida - Resolvido

7 respostas
LPJava

olá Pessoal,

Estou tentando testar o uso de hibernate com o eclipse e fiz uma pequena aplicacao com jsf, tendo o hibernate para persistencia. Mas, ao executar estou obtendo os erros abaixo, tenho os erros abaixo. Ja venho mais de 3 dias pesquisando no velho google e guj, mas nao encontrei algo com o problema semelhante. Anexei os .jars do hibernate que adicionei ao projeto.

14/12/2009 11:23:41 com.sun.faces.application.ActionListenerImpl processAction SEVERE: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:97) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91) at javax.faces.component.UICommand.broadcast(UICommand.java:383) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 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:175) 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:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77) at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173) at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216) at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117) at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43) at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162) at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135) at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55) at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56) at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:295) at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434) at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109) at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294) at br.com.util.ConexaoHi.<clinit>(ConexaoHi.java:13) at br.com.dao.VisitanteDAO.salvar(VisitanteDAO.java:17) at br.com.controller.VisitanteControler.salvar(VisitanteControler.java:24) 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 org.apache.el.parser.AstValue.invoke(AstValue.java:152) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)

Coloquei app para download aqui

quem puder ajudar, agredeco…
abracos :smiley:

7 Respostas

Andre_Brito

Acho que isso é com o Faces, e não com o Hibernate / Eclipse. Tá usando RichFaces? Ice? Será que não tá faltando jars na pasta lib do Tomcat? Você usa algum actionListener no Faces (em botão, por exemplo) pra chamar algum método? Usa ManagedBeans?

Recentemente desenvolvemos uma aplicaçãozinha na faculdade e coloquei a relação de libs no servidor (Apache Tomcat 6) usando Hibernate e Icefaces. Se você está utilizando Ice, veja a relação na parte de wiki aqui ó: http://code.google.com/p/mymib/wiki/Bibliotecas

Andre_Fonseca

só um chute, você tem uma lib asm.jar no seu projeto??

LPJava

oopa! Andre brito estou usando JavaServerFaces apenas tendo Jbools tools como ferramenta. Criei apenas um projeto jsf. Abaixo o code do meu form.jsf

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
	<head>
		<title></title>
	</head>
	<body>
		<f:view>
			<h:form>
			<h:inputText id="nome" size="20" value="#{visitanteControler.visitante.nome}"/>
			<h:commandButton value="Cadastrar" action="#{visitanteControler.salvar }"/>
			</h:form>
		</f:view>
	</body>	
</html>

Estou usando sim um ManagedBeans. no arquivo faces-config.xml.

Andre fonseca tem sim, o arquivo asm.jar em meu projeto no diretorio lib, tb criei um library com os arqivos jsf. Aproveitei e anexei uma imagem com .jars que tenho no projeto.

obs.: nao coloquei nada no lib do tomcat.
Mas o erro ainda continua, meu deus.

Andre_Brito

Você deu um build path no projeto?
Eu não sei nada de JSF, mas vou tentar dar uns chutes…
Parece estar tudo correto no facesconfigu. Tem um espaço a mais no seu commandButton ali. Será que pode ter ele? Quem sabe tirar o retorno do método salvar e deixar como void? O seu scope é session, mas não seria request? Sei lá cara… Não entendo direito de JSF, então tudo o que falei pode ser balela.

LPJava

opa! Pessoal conseguir resolver, tinha dois arquivos asm.ar e outro com a versao, removi este e compilou.
Aproveitei e fiz uns teste baixando a versao mais recente do Hibernate e copiei os arquivos somente do lib do hibernate e copie para o lib do meu projeto, nao compilou, está faltando arquivo, tipo nao vi o asm.jar e nao funcionou nao. Ai voltei para versao antiga.

Um detalhe importante que descobrir é que se criar o library para o hibernate usando recursos do eclipse, ele nao copia os arquivos .jars para o lib do projeto, bem esse problema eu ja sabia quando criava um dynamic web project, porem com jsf project pensei que funcionaria. Dai peguei todos os .jars do hibernate (versao antiga) e coloquei no lib do meu projeto, e funcionou tranquilamente, aproveite e tirei uma foto dos arquivos necessario vejam em anexo.

Agradeço ajuda de vcs :D.

Andre_Brito

Acho que copia sim… Você dando um build path ele funciona direitinho (pelo menos aqui funciona). Eu costumo deixar as libs dentro da pasta de bibliotecas do servidor. Assim, quando for fazer checkout / commit na primeira vez, não vai aquele tanto de arquivo (as libs pesam um bocado).

LPJava

olá Andre,

eu fiz um buildpath e nao funcionou aqui nao, ele nao apareceu la no lib. ficou vazio.

Eu nao gosto de deixar no server nao, pq se mudar o server? ai prefiro deixar no lib do projeto, ja que o servidor vai buscar sempre algo la.

Criado 14 de dezembro de 2009
Ultima resposta 14 de dez. de 2009
Respostas 7
Participantes 3