Bom dia pessoal,
Estou a 3 dias tentando resolver um problema para colocar a SessionFactory na JNDI. Eu não sei mais o que fazer!
Estou usando:
Hibernate 3.5
JBoss 7.1
PostgreSQL 9
hibernate.cfg.hbm
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.datasource">java:jboss/datasources/PostgresDS</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.use_sql_comments">true</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
<property name="current_session_context_class">jta</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.transaction.auto_close_session">false</property>
<property name="session_factory_name">java:hibernate/sessionFactoryPostgres</property>
<mapping package="business.concurso"/>
</session-factory>
</hibernate-configuration>
O problema acontece ao chamar
Configuration().configure().buildSessionFactory();
o hibernate não consegue colocar a SessionFactory na JNDI e gera essa informarção no log:
09:45:53,740 INFO [org.hibernate.impl.SessionFactoryImpl] (http--127.0.0.1-8080-1) building session factory
09:45:53,747 INFO [org.hibernate.type.BasicTypeRegistry] (http--127.0.0.1-8080-1) Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@5a80df
09:45:53,760 INFO [org.hibernate.impl.SessionFactoryObjectFactory] (http--127.0.0.1-8080-1) Factory name: java:hibernate/sessionFactoryPostgres
09:45:53,761 INFO [org.hibernate.util.NamingHelper] (http--127.0.0.1-8080-1) JNDI InitialContext properties:{}
09:45:53,762 INFO [org.hibernate.util.NamingHelper] (http--127.0.0.1-8080-1) Creating subcontext: java:hibernate
09:45:53,762 AVISO [org.hibernate.impl.SessionFactoryObjectFactory] (http--127.0.0.1-8080-1) Could not bind factory to JNDI: javax.naming.NameNotFoundException: java:hibernate
at org.jboss.as.naming.InitialContext.createSubcontext(InitialContext.java:211)
at org.jboss.as.naming.NamingContext.createSubcontext(NamingContext.java:345)
at javax.naming.InitialContext.createSubcontext(Unknown Source) [:1.6.0_25]
at org.hibernate.util.NamingHelper.bind(NamingHelper.java:92) [hibernate3.jar:]
at org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:113) [hibernate3.jar:]
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:367) [hibernate3.jar:]
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872) [hibernate3.jar:]
at com.sedna.dados.PersistenteWEB.<init>(PersistenteWEB.java:20) [componentes_2_0.jar:]
at com.sedna.dados.PersistenteWEB.getInstance(PersistenteWEB.java:27) [componentes_2_0.jar:]
at telas.cadastro.TelaConcurso.pesquisar(TelaConcurso.java:58) [classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_25]
at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_25]
at org.apache.el.parser.AstValue.invoke(AstValue.java:262) [jbossweb-7.0.7.Final.jar:]
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278) [jbossweb-7.0.7.Final.jar:]
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39) [weld-core-1.1.4.Final.jar:2011-11-22 20:01]
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) [weld-core-1.1.4.Final.jar:2011-11-22 20:01]
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.component.UICommand.broadcast(UICommand.java:315) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.7.Final.jar:]
at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.4.Final.jar:2011-11-22 20:01]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.7.Final.jar:]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:151) [jboss-as-web-7.1.0.CR1.jar:7.1.0.CR1]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [jbossweb-7.0.7.Final.jar:]
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:897) [jbossweb-7.0.7.Final.jar:]
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:626) [jbossweb-7.0.7.Final.jar:]
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2033) [jbossweb-7.0.7.Final.jar:]
at java.lang.Thread.run(Unknown Source) [:1.6.0_25]
Alguém poderia me dar uma ajuda a esclarecer porque o hibernate não consegue colocar a SessionFactory na JNDI?