Pool de Conexão: Tomcat

View: New views
2 Messages — Rating Filter:   Alert me  

Pool de Conexão: Tomcat

by George Maia :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bom dia, colegas.
Não estou conseguindo retornar uma conexão com a minha Base de Dados pelo código abaixo:

    public static void main(String[] args) throws NamingException, SQLException {
        Context initContext = new InitialContext();
        Context envContext  = (Context)initContext.lookup("java:/comp/env/");
        DataSource ds = (DataSource)envContext.lookup("jdbc/ConexaoIntercambio"); 
        OracleConnection conexao = (OracleConnection) ds.getConnection(); 
    }



Os meus arquivos context.xml e web.xml estão devidamente configurados. Consigo acessar esta mesma base por exemplo web que inseri.

No código acima, o erro ocorre na linha:
        Context envContext  = (Context)initContext.lookup("java:/comp/env/");

A exception que ocorre:

Exception in thread "main" 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 conexao.Conexao.main(Conexao.java:22)



Alguma dica? Abraço a todos.

--
http://georgefernandesmaia.wordpress.com

George Fernandes Maia
João Pessoa - PB



--~--~---------~--~----~------------~-------~--~----~
=================================================================
Site do grupo: http://pbjug.org/

Para sair da lista, envie um e-mail para pbjug-unsubscribe@...
=================================================================
-~----------~----~----~----~------~----~------~--~---


Re: Pool de Conexão: Tomcat

by Marcos Eduardo :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

Configuração:

Para conectar sua aplicação à base de dados utilizando pool de conexões do Tomcat, primeiro é necessário configurar um arquivo localizado na pasta META-INF de sua aplicação, o context.xml (ver Figura 1, em anexo).


É neste arquivo xml que, geralmente, configuramos a url de nossa aplicação na web. Somando a esta funcionalidade, este xml pode também ser utilizado para configuração de nossa base de dados, como número de conexões (a serem gerenciadas pelo pool do tomcat) disponíveis, senha, login e url da nossa base de dados.

 

Exemplo( context.xml ):

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

<Context

antiJARLocking="false"

antiResourceLocking="false"

path="/sinples" privileged="true">

<Resource

auth="Container"

driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="100"

maxIdle="30"

maxWait="10000"

name=" jdbc/nomeAplicao "

password="12345678"

type="javax.sql.DataSource"

url="jdbc:oracle:thin:@pb1:1521:adm" username="SINPLES"/>

</Context>

 

 

Adicionando o Driver do Banco:

 

Não é necessário adicionar o Driver da Base no classPaph de sua aplicação. Entretanto, é necessário copiar o “.jar” do seu BD no pasta lib do Tomcat (ver Figura 2 em anexo).


Conectando a base de Dados (Classe: Conexao.java):

 

Responsabilidade: Realizar a conexão com sua base de dados, utilizando as definições cingiguradas no context.xml e o driver copiado para pasta lib do Tomcat.

 

package br.empresa.bd;

import java.sql.*; import java.util.*; import javax.naming.*;

public class Conexao {

 

    protected static DataSource dataSource;

    public Conexao() throws Exception {

        if (dataSource == null) {

            try {

                InitialContext ic = new InitialContext();

                Context initCtx = new InitialContext();

                Context envCtx = (Context) initCtx.lookup("java:comp/env");

                dataSource = (DataSource) envCtx.lookup("jdbc/nomeAplicao");

               

                /*

                Context initCtx = new InitialContext();

                Context envCtx = (Context) initCtx.lookup("java:comp/env");

                dataSource = (DataSource) envCtx.lookup("jdbc/core");

                */

               

            } catch (NamingException ex) {

                System.out.println(ex.getMessage());

                throw new Exception(ex.getMessage());

            }

        }

    }

    public Connection getConnection() throws SQLException {

        Connection conn = null;

        try {

            conn = dataSource.getConnection();

        } catch (SQLException e) {

            throw e;

        }

        return conn;

    }

    public void closeConnection(

            Connection conn,

            PreparedStatement stmt,

            ResultSet rs) {

        if (rs != null) {

            try {

                rs.close();

            } catch (SQLException e) {

            }

        }

        if (stmt != null) {

            try {

                stmt.close();

            } catch (SQLException e) {

            }

        }

        if (conn != null) {

            try {

                conn.close();

            } catch (SQLException e) {

            }

        }

    }

}





2009/10/21 George Maia <georgeppp@...>
Bom dia, colegas.
Não estou conseguindo retornar uma conexão com a minha Base de Dados pelo código abaixo:

    public static void main(String[] args) throws NamingException, SQLException {
        Context initContext = new InitialContext();
        Context envContext  = (Context)initContext.lookup("java:/comp/env/");
        DataSource ds = (DataSource)envContext.lookup("jdbc/ConexaoIntercambio"); 
        OracleConnection conexao = (OracleConnection) ds.getConnection(); 
    }



Os meus arquivos context.xml e web.xml estão devidamente configurados. Consigo acessar esta mesma base por exemplo web que inseri.

No código acima, o erro ocorre na linha:
        Context envContext  = (Context)initContext.lookup("java:/comp/env/");

A exception que ocorre:

Exception in thread "main" 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 conexao.Conexao.main(Conexao.java:22)



Alguma dica? Abraço a todos.

--
http://georgefernandesmaia.wordpress.com

George Fernandes Maia
João Pessoa - PB







--
@Atenciosamente,
--
Marcos Eduardo da Silva Santos
Systems Analyst and Java Programmer
Master's Student in Network and Distributed System
State University of Ceará (Brazil)
Bachelor in Computer Science (Brazil)
Fortaleza, Ceará State, Brazil
Mobile: +55 (85) 91699547






CAMPANHA POR UMA INTERNET SEGURA

Adote esta idéia ao enviar/reenviar/encaminhar uma
mensagem:
1) Apague o meu e-mail e o meu nome.
2) Apague também os endereços dos amigos antes de
reenviar.
3) Envie ou encaminhe como cópia oculta (Cco ou Bcc) aos
seus destinatários.

Agindo sempre assim, dificultaremos a disseminação de vírus e spams.

--~--~---------~--~----~------------~-------~--~----~
=================================================================
Site do grupo: http://pbjug.org/

Para sair da lista, envie um e-mail para pbjug-unsubscribe@...
=================================================================
-~----------~----~----~----~------~----~------~--~---




Figura 1.PNG (5K) Download Attachment
Figura 2.PNG (4K) Download Attachment