Erro no jndi

2 respostas
F

Estou desenvolvendo uma aplicação com Eclipse, JSF, JBossTols e o banco PostGreSQL. Ao tentar conectar no banco de dados ele dá a seguinte mensagem:

Could not find datasource: java:/ConnectionMy

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial

at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)

at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)

at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)

at javax.naming.InitialContext.lookup(Unknown Source)

at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)

at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)

at

Estou usando o pool de conexões, meu arquivo *ds.xml, localizado na pasta “\jboss-4.2.2.GA\server\default\deploy”:

<?xml version="1.0" encoding="UTF-8" ?> 
	<datasources>
		<local-tx-datasource>
  			<jndi-name>ConnectionMy</jndi-name> 
  			<connection-url>jdbc:postgresql://IpRemoto:5432/MeuBanco</connection-url> 
  			<driver-class>org.postgresql.Driver</driver-class> 
  			<user-name>usuario</user-name> 
  			<password>senha</password> 
  			<min-pool-size>5</min-pool-size> 
  			<max-pool-size>20</max-pool-size> 
  			<idle-timeout-minutes>5</idle-timeout-minutes> 
  		</local-tx-datasource>
	</datasources>

meu arquivo persistence.xml, localizado na pasta META-INF das classes:

<?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="unitPersist" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:/ConnectionMy</jta-data-source>                       
    <properties>
    	<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>	
      	<property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
  </persistence-unit>
</persistence>

Detalhe já tentei tirar a barra “/” do jta (java:ConnectionMy), mas também não funciona.
Alguém tem idéia do que poderia ser, a impressão que dá é que o arquivo *ds.xml não está sendo encontrado, entretanto ele está na pasta e tal.

2 Respostas

lmprates

tente alterar esta linha

&lt;jta-data-source&gt;java:/ConnectionMy&lt;/jta-data-source&gt;

para isto

&lt;jta-data-source&gt;ConnectionMy&lt;/jta-data-source&gt;

Pelo menos no glassfish funciona dessa forma. Não se a implementação do Jboss muda neste aspecto.

F

lmprates:
tente alterar esta linha

&lt;jta-data-source&gt;java:/ConnectionMy&lt;/jta-data-source&gt;

para isto

&lt;jta-data-source&gt;ConnectionMy&lt;/jta-data-source&gt;

Pelo menos no glassfish funciona dessa forma. Não se a implementação do Jboss muda neste aspecto.

Dessa forma também não funciona, e o estranho é que ao colocar o arquivo *ds.xml o jboss mostra que foi efetuado deploy e informa o jndi registrado:

14:26:02,667 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=ConnectionProdesp' to JNDI name 'java:ConnectionMy'

Nesse caso está sem a barra “/”, mas mesmo com a barra não funciona também. Precisa fazer algo mais no jndi para que seja reconhecido?

Criado 15 de setembro de 2008
Ultima resposta 15 de set. de 2008
Respostas 2
Participantes 2