Hibernate + Eclipse duvida - Resolvido

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:

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

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

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

[code]
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>

[/code]

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.

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.

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.

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).

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.