Could not bind factory to JNDI

3 respostas
marciosdc

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?

3 Respostas

A

Cara, experimente as seguintes coisas:
java:/hibernate/…
Em outro post tiraram o “java”. http://forums.pentaho.com/showthread.php?56499-DB-Solution-hibernateManaged-true-create-tables

hibernate/HibernateFactory

Nota: faz um tempão que não uso o hibernate. Então se falei m* peço desculpas.

marciosdc

Caro abmpicoli, obrigado por sua ajuda, mas ainda não foi dessa vez…

O que eu não estou entendendo é que o jboss não lança um erro, ele apenas avisa que não foi possível dar um bind na JNDI com a SessionFactory. Eu conseguia fazer isso tranquilamente no JBoss 6.

Alguma outra opção?

marciosdc

Pessoal, mais alguma sugestão? Não sei mais o que fazer!!!

Criado 1 de fevereiro de 2012
Ultima resposta 1 de fev. de 2012
Respostas 3
Participantes 2