Could not bind factory to JNDI - Context is read only - JPA + JNDI + Tomcat

0 respostas
danielso2007
Problemas com JNDI utilizando o Tomcat. A Aplicação utilizava JPA implementado pelo Hibernate. Para ambientes com uma implementação padrão somente leitura JNDI, como o tomcat, utilizar a propriedade do hibernate [b][i]hibernate.session_factory_name[/i][/b] é recomendado.

Exceção:

12039 [main] WARN impl.SessionFactoryObjectFactory - Could not bind factory to JNDI javax.naming.NamingException: Context is read only at org.apache.naming.NamingContext.checkWritable(NamingContext.java:903) at org.apache.naming.NamingContext.bind(NamingContext.java:831) at org.apache.naming.NamingContext.rebind(NamingContext.java:208) at org.hibernate.util.NamingHelper.bind(NamingHelper.java:74) at org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:90) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:306) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:854) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34) at org.jboss.seam.persistence.EntityManagerFactory.createEntityManagerFactory(EntityManagerFactory.java:81) at org.jboss.seam.persistence.EntityManagerFactory.startup(EntityManagerFactory.java:50) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ...

Configuração persistence.xml:

<persistence-unit name="Web" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:comp/env/jdbc/WebDatasource</jta-data-source> ... <properties> ... <property name="hibernate.session_factory_name" value="WebEntityManagerFactory"></property> ... </properties> ... </persistence-unit>

Adicionando a propriedade acima, no arquivo persistence.xml, o problema do warn foi resolvido.
Criado 29 de agosto de 2011
Respostas 0
Participantes 1