[Resolvido]JNDI x Hibernate usando Persistence.xml Resource_Local

5 respostas
S

Bom dia Pessoal, estou com uma duvida cruel.

é o seguinte, preciso definir um datasource vindo do meu container (no caso o tomcat 6.0)

fiz da segunte maneira
<Resource 
            auth="Container" 
            driverClassName="org.gjt.mm.mysql.Driver" 
            maxActive="100" 
            maxIdle="30" 
            maxWait="10000"                                           
            name="jdbc/app_Datasource"                     
            password="root" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/app" username="root"/>
e estou tentando acessar via meu persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
   version="1.0">
	
	
	<persistence-unit name="app" transaction-type="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>java:comp/env/jdbc/app_Datasource</jta-data-source>
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
			<property name="hibernate.show_sql" value="false" />
			<property name="hibernate.format_sql" value="true" />
			
			<property name="hibernate.c3p0.min_size" value="5" />
			<property name="hibernate.c3p0.max_size" value="20" />
			<property name="hibernate.c3p0.timeout" value="180" />
			<property name="hibernate.c3p0.idle_test_period" value="100" />
			<property name="hibernate.hbm2ddl.auto" value="update"/>
			
			<property name="cache.use_second_level_cache" value="true" />
			<property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.EhCacheProvider" />
			<property name="net.sf.ehcache.configurationResourceName" value="/META-INF/ehcache.xml" />
		</properties>
	</persistence-unit>
</persistence>

Acontece que ele não encontra o datasource, acontece o seguinte erro.

Caused by: javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
	at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
	at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
	at javax.naming.InitialContext.lookup(Unknown Source)
	at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
	... 60 more

outra duvida q eu tenho é que se eu setar usando jta-data-source, a transação deixaria de ser resource_local?

Obrigado a todos pela cooperação desde já, e desculpem a leiguiçe.

5 Respostas

P

O primeiro conteudo é referente ao arquivo context.xml dentro do WEB-INF ?

S

não não, ele é referente ao server.xml. esqueci de especificar

web.xml recurso

<resource-ref> <description>DB Sisouvidor</description> <res-ref-name>jdbc/app_Datasource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>

F

SilverFangs:

outra duvida q eu tenho é que se eu setar usando jta-data-source, a transação deixaria de ser resource_local?

Obrigado a todos pela cooperação desde já, e desculpem a leiguiçe.


Quem gerencia a transação nesse cenário não é o Tomcat? Vc não utiliza a biblioteca jta.jar?

Então tem que ficar assim:

<persistence-unit name="PersistenceUnit" transaction-type="JTA">
S

eu estou usando o resource_local por regras definidas na arquitetura. mais liberdade na manutenção dos dados.

fora isso,

usando resource_local teria algum problema na questão do acesso ao resource do JNDI ?

S

Pessoal o problema estava na IDE, apesar de alguns erros de naming por minha parte, o negocio é que eu precisava de dar um clean no server pra que ele pudesse re-atualizar o server.xml;

Obrigado a todos!

Criado 9 de fevereiro de 2011
Ultima resposta 14 de fev. de 2011
Respostas 5
Participantes 3