• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

diogo.delgaudio

Problema com pool de conexões

5 mensagens neste tópico

Estou tentando fazer um pool de conexões, porém sem sucesso, estou recebendo o seguinte erro qdo tenta conectar no bd:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException

br.com.ag7.ImpostoAg7.jdbc.acesso.Acesso.update(Acesso.java:60)

br.com.ag7.ImpostoAg7.jdbc.implementacao.CadastroCliente.incluirCliente(CadastroCliente.java:41)

br.com.ag7.ImpostoAg7.servlet.imposto.CadastrarCliente.processRequest(CadastrarCliente.java:53)

br.com.ag7.ImpostoAg7.servlet.imposto.CadastrarCliente.doPost(CadastrarCliente.java:85)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.

essa é a classe acesso:

package br.com.ag7.ImpostoAg7.jdbc.acesso;
import com.sun.rowset.CachedRowSetImpl;
import java.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
import javax.sql.rowset.CachedRowSet;

public class Acesso {

    public static final Connection getConexao() throws NamingException{
       Connection c= null;
        try {
           
        
            Context ctx =new InitialContext();
            DataSource ds = (DataSource)ctx.lookup("java:/comp/env/jdbc/cadastro");
            c = ds.getConnection();
        
        
        
        
        } catch (NamingException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    return c;    
    }
    
    public static final CachedRowSet query(String sql){
        CachedRowSet crs = null;
        try {
            
            
            
            crs = new CachedRowSetImpl();
            PreparedStatement pstm = getConexao().prepareStatement(sql);
            
            System.out.println(sql);
            crs.populate(pstm.executeQuery());
            getConexao().close();
            
            
            
            
        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (NamingException ex) {
            ex.printStackTrace();
        }
        return crs;
    }
    
        public static final Integer update(String sql){
        Integer i = null;
        try {
            
            
            
            PreparedStatement pstm = getConexao().prepareStatement(sql);
            i = pstm.executeUpdate();
            //pstm.execute();
            getConexao().close();
            
            
            
        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (NamingException ex) {
            ex.printStackTrace();
        }
        return i;
    }
}

e esse é o meu context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context >
  <Resource 
    driverClassName="com.mysql.jdbc.Driver"   
    name="jdbc/cadastro" 
    url="jdbc:mysql://localhost:3306/cadastro?autoReconnect=true" 
    type="javax.sql.DataSource" 
    password="diogo88" 
    username="root"  
    maxActive="8" 
    maxIdle="4" 
  />
  
</Context>

não conecta de jeito nenhum e parece-me correta :S

estou começando a achar q o problema está no mysql, eu preciso fazer alguma configuração nele para a minha aplicação poder conectar-se à ele?

obrigado, pessoal!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não estou familiarizado com o que estás a fazer, já fizeste debug?

Isso é um *simples* NullPointerException, com um debug encontras a variável que está a null num instante.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, no debug há o seguinte erro "Cannot load JDBC driver class 'com.mysql.jdbc.Driver'" porém creio ter instalado o driver correto e corretamente! Knitter, só por via das dúvidas, em q pasta eu devo colocar o driver do mydql?

a msg d erro completa:

Undeploying context [/impostoag7]

insert into cliente (nomeEmpresa,ruaEmpresa,complementoEmpresa,bairroEmpresa,telefoneEmpresa,telefone2Empresa,cnpjEmpresa) values('diogo','rua','2','flamengo','234','342','23' );

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

[/quote/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes colocar na pasta que quiseres mas tens de adicionar o Jar ao projecto. Na secção de "libraries" do projecto, se clicares com o botão direito podes adicionar novos jars ao projecto. Senão, o jar tem de estar no teu classpath. Se não estiver no classpath ou não estiver adicionado ao projecto o IDE e a aplicação não irão conhecer o jar e não conseguirão carregar o driver.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

knitter, problema resolvido... eu estava adicionando o jar direto no projeto e não estava conseguindo rodar... quando inseri o jar em C:\Arquivos de programas\netbeans-5.5.1\enterprise3\apache-tomcat-5.5.17\common\lib (visto q eu uso o netbeans budled...) funcionou! :( agora está funfando legal, só estou tendo problemas ao inserir strings com acento... obrigado pela ajuda mais uma vez knitter! :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora