Problema com datasource no jboss 4.2

8 respostas
toni.arc

Fala galera,

meu problema é o seguinte, tenho uma aplicação que usa hibernate com jpa pra fazer a persistencia em um banco postgres, quando eu coloco os atributos da conexão no persistence.xml, a aplicação roda beleza, mas agora estou precisando usar um data source no jboss 4.2. Estou tentando fazer da seguinte forma.

Primeiro o data source (que esta na pasta {JBOSS_HOME}/server/default/deploy):

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE datasources
    PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
    "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
    
<datasources>
   
   <local-tx-datasource>
      <jndi-name>meuDS</jndi-name>
      <connection-url>jdbc:postgresql://10.1.3.164:5432/meuBd</connection-url>
      <driver-class>org.postgresql.Driver</driver-class>
      <user-name>senha_user</user-name>
      <password>XXXXX</password>

   </local-tx-datasource>
    
</datasources>

E agora o persistence.xml (que esta na pasta META-INF da minha app):

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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">
	<persistence-unit name="meuPU" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>java:/meuDS</jta-data-source>
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
			<property name="hibernate.hbm2ddl.auto" value="none" />
			<property name="hibernate.show_sql" value="false" />
			<property name="hibernate.format_sql" value="false" />
			<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup" />
		</properties>
	</persistence-unit>
</persistence>

sendo que o jar que contem o driver do postgres esta na lib do jboss ({JBOSS_HOME/server/default/lib}) e o erro que aparece é esse:

Caused by: org.hibernate.HibernateException: Could not find datasource: java:/meuDS
	at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:59)
	at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
	at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:713)

será que alguem poderia me ajudar?

8 Respostas

J

Existe um exemplo de configuração dos datas sources

em ${JBOSS_HOME}/docs/examples/jca.

O teu está um pouco diferente do que está no Jboss

toni.arc

Ola java++,

eu já tinha visto esses exemplos, mas pelo erro que esta aparecendo, eu acho que a aplicação é que não está achando o nome jndi do datasource (java:/meuDS), tanto é que quando eu starto o jboss, ele carrega sem problemas o arquivo do datasource.

Mas de qualquer jeito obrigado pela ajuda.

Se mais alguem sober como resolver esse problema eu agradeço.

toni.arc

Ninguem sabe como eu resolvo este problema?

Se souberem, por favor me ajudem, estou precisando muito resolver isto.

J

O teu persistence deve está dentro do META-INF do

módulo EJB, não da aplicação, ele está?

toni.arc

A minha aplicação não usa EJB e é como eu já disse acima, acho que o problema é com o nome jndi do meu datasource (java:/meuDS), o qual o jboss não consegue achar.

J

Ele não acha por que está no lugar errado.

Como você está utilizando JTA, na aplicação sem EJB para comunicação?

toni.arc

Então eu só posso usar datasource no jboss se eu estiver usando EJB?

J

Foi isso que te perguntei.

Criado 21 de agosto de 2008
Ultima resposta 25 de ago. de 2008
Respostas 8
Participantes 2