JNDI no JBoss

1 resposta
R

Ola pessoal, a minha pergunta é:

tenho uma classe que acessa uma base mysql, e este acesso eu configuro na própria aplicação, então o que eu queria fazer era que a aplicação buscasse as informações em um arquivo xml via jndi.

Acesso via aplicação.

public Conexao(String driver, String server, String database, String user, String password) throws SQLException 
{ 
      try 
      { 
          Class.forName(driver); 
          connection = DriverManager.getConnection("jdbc:mysql://"+server+"/"+database, user, password); 
       } 

       catch(ClassNotFoundException ex) 
       { 
           System.out.println("Não foi poss¡vel encontrar o driver de conexão."); 
       } 

       catch(SQLException ex) 
       { 
           System.out.println("Não foi poss¡vel conectar ao servidor."); 
           throw ex; 
       } 

       try 
      { 
           statement = connection.createStatement(); 
      } 

      catch(SQLException ex) 
      { 
          System.out.println("NÆo foi poss¡vel criar o objeto stetament."); 
          throw ex; 
       } 
}

arquivo descritor xml:

<datasources> 
   <local-tx-datasource> 
<jndi-name>mysqlDS</jndi-name> 
<connection-url>jdbc:mysql://localhost/</connection-url> 
<driver-class>org.gjt.mm.mysql.Driver</driver-class> 
<user>MEUUSUARIO</user> 
<password>MINHASENHA</password> 
</local-tx-datasource> 
</datasources>

A questão é:

– como ficaria o trecho do codigo java (o codigo la na classe) para ler estas entradas no descritor mysqlDS.xml na pasta jboss-4.0.0\server\default\deploy\

1 Resposta

M
InitialContext ic = null;
Hashtable props = new Hashtable();

props.put( InitialContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory" );
props.put( InitialContext.PROVIDER_URL, "jnp://127.0.0.1:1099" ); // ai vai o IP do servidor

try {
	
   ic = new InitialContext( props );
   cache = Collections.synchronizedMap( new HashMap() );
	
} catch ( NamingException e ) {
			
   e.printStackTrace();
		
}

DataSource dataSource = ( DataSource ) ic.lookup( dataSourceName );
Criado 26 de outubro de 2004
Ultima resposta 26 de out. de 2004
Respostas 1
Participantes 2