TomCat + Hibernate = 1 problema

14 respostas
R

Amigos estou tendo um problema quando utilizo o hibernate com o tomcat!
Tenho um webservice que utiliza hibernate para acessar o banco de dados. Alguem teria alguma coisa de como trabalhar o hibernate e o Toncat juntos?

Ficaria muito grato

14 Respostas

R

Para ser mais especifico… o erro do log do tomcat…

javax.servlet.ServletException: Servlet execution threw an exception

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Thread.java:534)

----- Root Cause -----

java.lang.ExceptionInInitializerError

at meuservico.HibernateUtil.(HibernateUtil.java:39)

at meuservico.AmigoDAO.(AmigoDAO.java:21)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:274)

at java.lang.Class.newInstance0(Class.java:308)

at java.lang.Class.newInstance(Class.java:261)

at org.apache.axis.providers.java.JavaProvider.makeNewServiceObject(JavaProvider.java:381)

at org.apache.axis.providers.java.JavaProvider.getNewServiceObject(JavaProvider.java:233)

at org.apache.axis.providers.java.JavaProvider.getServiceObject(JavaProvider.java:89)

at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:285)

at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)

at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)

at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:697)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Thread.java:534)

Caused by: java.lang.NoClassDefFoundError: org/aspectj/lang/Signature

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:141)

at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:57)

at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:80)

at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:362)

at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:60)

at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1463)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1004)

at meuservico.HibernateUtil.(HibernateUtil.java:31)

 49 more
Mauricio_Linhares

Você tem que colocar o aspectjrt.jar no seu classpath.

R

Obrigado amigo… deu certo com sua dica…

Agora tenho mais um problema… minha aplicacao cliente… consegue acessar a aplicacao web service… mas apenas a primeira vez que ele conseguiu logar na sessao… depois se ele sair do programa e tentar acessar novamente da pau na aplicação … e pior não tem erro para te mostrar…

valeus

Mauricio_Linhares

betobcsc:
Obrigado amigo… deu certo com sua dica…

Agora tenho mais um problema… minha aplicacao cliente… consegue acessar a aplicacao web service… mas apenas a primeira vez que ele conseguiu logar na sessao… depois se ele sair do programa e tentar acessar novamente da pau na aplicação … e pior não tem erro para te mostrar…

valeus

Rapaz, sem erro, só macuba… :shock:

Será que num tem, em algum lugar, uma exceção que tá sendo silenciada dentro de um try-catch não?

R

Class ERemotableException with message orgl.hibernate.HibernateException: Not able obtain connection

essa eh a mensagem que da…

Mauricio_Linhares

Fora desse webservice o Hibernate funciona normal?

R

Funciona corretamente fora do webservice…
Tipo assim a primeira vez que o web service eh acessado funciona corretamente… quando fecho a aplicacao cliente… e abro ela novamente e acesso o mesmo web service da esse erro… mas se eu baixar o tomcat e levantar novamente o tomcat funciona normal… mas apenas 1 vez…

Muito estranho nao?

R

Vc sabe me dizer o que é esse tal de JNDI/JDBC?
Vou lhe passar o log do tomcat…

java.lang.IllegalStateException: getAttribute: Session already invalidated

at org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:953)

at org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:171)

at org.apache.axis.transport.http.AxisHTTPSessionListener.destroySession(AxisHTTPSessionListener.java:43)

at org.apache.axis.transport.http.AxisHTTPSessionListener.sessionDestroyed(AxisHTTPSessionListener.java:72)

at org.apache.catalina.session.StandardSession.expire(StandardSession.java:658)

at org.apache.catalina.session.StandardSession.expire(StandardSession.java:607)

at org.apache.catalina.session.StandardManager.processExpires(StandardManager.java:793)

at org.apache.catalina.session.StandardManager.run(StandardManager.java:870)

at java.lang.Thread.run(Thread.java:534)
2005-06-13 15:23:10 StandardManager[/axis] Session event listener threw exception

java.lang.IllegalStateException: getAttribute: Session already invalidated

at org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:953)

at org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:171)

at org.apache.axis.transport.http.AxisHTTPSessionListener.destroySession(AxisHTTPSessionListener.java:43)

at org.apache.axis.transport.http.AxisHTTPSessionListener.sessionDestroyed(AxisHTTPSessionListener.java:72)

at org.apache.catalina.session.StandardSession.expire(StandardSession.java:658)

at org.apache.catalina.session.StandardSession.expire(StandardSession.java:607)

at org.apache.catalina.session.StandardManager.processExpires(StandardManager.java:793)

at org.apache.catalina.session.StandardManager.run(StandardManager.java:870)

at java.lang.Thread.run(Thread.java:534)
2005-06-13 15:23:10 StandardManager[/axis] Session event listener threw exception

java.lang.IllegalStateException: getAttribute: Session already invalidated

at org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:953)

at org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:171)

at org.apache.axis.transport.http.AxisHTTPSessionListener.destroySession(AxisHTTPSessionListener.java:43)

at org.apache.axis.transport.http.AxisHTTPSessionListener.sessionDestroyed(AxisHTTPSessionListener.java:72)

at org.apache.catalina.session.StandardSession.expire(StandardSession.java:658)

at org.apache.catalina.session.StandardSession.expire(StandardSession.java:607)

at org.apache.catalina.session.StandardManager.processExpires(StandardManager.java:793)

at org.apache.catalina.session.StandardManager.run(StandardManager.java:870)

at java.lang.Thread.run(Thread.java:534)
Mauricio_Linhares

Pelo que ele está dizendo, a sua aplicação está tentando usar uma sessão que já foi invalidada (chamaram invalidate() ). Será que esse webservice está com as sessões funcionando corretamente?

R

Acho q tem algum problema com essa coisa de sessao… pois as vezes da esse outro erro: Exception sesssion is closed.

O que poderia estar acontecendo?

Vc acha q OJB seria melhor q o hibernate… estou perguntando pq vc ja deve ter percebido que muitos erros ocorrem…

Mauricio_Linhares

A sessão que está fechada não é a do Hibernate, é a da sua aplicação web. Se você prestar atenção, não existe nenhuma classe do Hibernate no seu stack trace.

E até hoje, eu nunca vi ninguém com uma dúvida que fosse problema do Hibernate, é sempre problema de quem está usando. Nenhum dos problemas de você passou, foram problemas do Hibernate.

R

Entendi… quer dizer que o problema esta no meu Tomcat?
Pq tenho apenas classes do hibernate que me retornam um Array de objetos de uma classe bem simples.

O que vc acha pode ser isso?

Mauricio_Linhares

Não exatamente no Tomcat, eu to achando que o problema é nesse seu webservice aí, deve ter alguma coisa nele ou em quem está recebendo que não está mantendo a sessão.

Mas como eu não trabalho com webservices, não tenho como saber como resolver isso.

Tem alguém aí com uma idéia :?:

R

Obrigado Mauricio

Poise agora num sei mais… o problema eh meio urgente… se alguem
poder ajudar…

valeus

Criado 13 de junho de 2005
Ultima resposta 13 de jun. de 2005
Respostas 14
Participantes 2