Erro conexão postgresql [RESOLVIDO]

5 respostas
S

Olá amigos

estou tentando fazer uma conexão com um servidor de banco de dados e apresenta o seguinte erro:

18/06/2009 15:41:46 comap.FramePatrimonio inicializaCombobox

SEVERE: null

org.postgresql.util.PSQLException: A tentativa de conexão falhou.

at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:137)

at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)

at org.postgresql.jdbc2.AbstractJdbc2Connection.(AbstractJdbc2Connection.java:124)

at org.postgresql.jdbc3.AbstractJdbc3Connection.(AbstractJdbc3Connection.java:30)

at org.postgresql.jdbc3.Jdbc3Connection.(Jdbc3Connection.java:24)

at org.postgresql.Driver.makeConnection(Driver.java:386)

at org.postgresql.Driver.connect(Driver.java:260)

at java.sql.DriverManager.getConnection(DriverManager.java:582)

at java.sql.DriverManager.getConnection(DriverManager.java:185)

at bd.ConexaoBancoDados.conexao(ConexaoBancoDados.java:69)

at comap.FramePatrimonio.inicializaCombobox(FramePatrimonio.java:276)

at comap.FramePatrimonio.inicializaFrame(FramePatrimonio.java:184)

at comap.FramePatrimonio.(FramePatrimonio.java:87)

at comap.FramePrincipal.createFramePatrimonio(FramePrincipal.java:204)

at comap.FramePrincipal.actionPerformed(FramePrincipal.java:185)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.AbstractButton.doClick(AbstractButton.java:357)

at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1225)

at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1266)

at java.awt.Component.processMouseEvent(Component.java:6216)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5981)

at java.awt.Container.processEvent(Container.java:2041)

at java.awt.Component.dispatchEventImpl(Component.java:4583)

at java.awt.Container.dispatchEventImpl(Container.java:2099)

at java.awt.Component.dispatchEvent(Component.java:4413)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)

at java.awt.Container.dispatchEventImpl(Container.java:2085)

at java.awt.Window.dispatchEventImpl(Window.java:2475)

at java.awt.Component.dispatchEvent(Component.java:4413)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Caused by: java.net.SocketException: Malformed reply from SOCKS server

at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:87)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:429)

at java.net.Socket.connect(Socket.java:519)

at java.net.Socket.connect(Socket.java:469)

at java.net.Socket.(Socket.java:366)

at java.net.Socket.(Socket.java:180)

at org.postgresql.core.PGStream.(PGStream.java:62)

at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:77)

 41 more

18/06/2009 15:46:46 comap.FramePrincipal actionPerformed

SEVERE: null

org.postgresql.util.PSQLException: A tentativa de conexão falhou.

at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:137)

at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)

at org.postgresql.jdbc2.AbstractJdbc2Connection.(AbstractJdbc2Connection.java:124)

at org.postgresql.jdbc3.AbstractJdbc3Connection.(AbstractJdbc3Connection.java:30)

at org.postgresql.jdbc3.Jdbc3Connection.(Jdbc3Connection.java:24)

at org.postgresql.Driver.makeConnection(Driver.java:386)

at org.postgresql.Driver.connect(Driver.java:260)

at java.sql.DriverManager.getConnection(DriverManager.java:582)

at java.sql.DriverManager.getConnection(DriverManager.java:185)

at bd.ConexaoBancoDados.conexao(ConexaoBancoDados.java:69)

at comap.FramePatrimonio.inicializaFrame(FramePatrimonio.java:203)

at comap.FramePatrimonio.(FramePatrimonio.java:87)

at comap.FramePrincipal.createFramePatrimonio(FramePrincipal.java:204)

at comap.FramePrincipal.actionPerformed(FramePrincipal.java:185)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.AbstractButton.doClick(AbstractButton.java:357)

at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1225)

at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1266)

at java.awt.Component.processMouseEvent(Component.java:6216)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5981)

at java.awt.Container.processEvent(Container.java:2041)

at java.awt.Component.dispatchEventImpl(Component.java:4583)

at java.awt.Container.dispatchEventImpl(Container.java:2099)

at java.awt.Component.dispatchEvent(Component.java:4413)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)

at java.awt.Container.dispatchEventImpl(Container.java:2085)

at java.awt.Window.dispatchEventImpl(Window.java:2475)

at java.awt.Component.dispatchEvent(Component.java:4413)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Caused by: java.net.SocketException: Malformed reply from SOCKS server

at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:87)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:429)

at java.net.Socket.connect(Socket.java:519)

at java.net.Socket.connect(Socket.java:469)

at java.net.Socket.(Socket.java:366)

at java.net.Socket.(Socket.java:180)

at org.postgresql.core.PGStream.(PGStream.java:62)

at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:77)

 40 more

O servidor é linux e não tem nenhuma restrição de firewall. PostgreSQL no servidor 8.1.9.
Estou usando no Netbeans 6.7rc3, Swing e postgresql-8.3-603.jdbc3.jar.

public static Connection conexao() throws ClassNotFoundException,SQLException{
    ConexaoBancoDados conecta = new ConexaoBancoDados();
    try {
        conecta.readConfig();
    } catch (Exception ex) {
        ex.printStackTrace();
        Logger.getLogger(ConexaoBancoDados.class.getName()).log(Level.SEVERE, null, ex);
    }
    Class.forName("org.postgresql.Driver");
   Connection conexao = DriverManager.getConnection(url,username,password);
return conexao;
}

alguém pode ajudar?

Muito obrigado

Silvio Guedes

5 Respostas

S

Olá amigos

encontrei o erro, estava na minha classe de conexão.

Muito obrigado

Silvio Guedes

O

Olá,

estou com o mesmo problema só que no Ubuntu. No meu caso, deu o erro, capturei o objeto e debuguei o código até chegar nele. Contudo, o erro não aconteceu. Mandei rodar e novamente deu o erro em objeto diferente.
Qual foi a sua solução, o que você consertou na sua classe?

S

Olá amigo

ressuscitou este poste, foi quando estava começando em java. Bem você poderia mostrar o erro e seu fonte para podermos analisá-lo?

Você esta programando com swing ou para web?

Silvio Guedes

O

Olá,

Alguns códigos sem tela que executo no eclipse. Não tem o que por ou tirar sobre seu primeiro comentário deste post.
Meu código é:

package codigos;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class BancoDados {

//Variaveis globais
	public Statement stm;
	private Connection con;

    /**
	 *    Descricao: Conecta no banco e cria o Statement.
	 * Data Criacao: 14/06/2012
	 */
    public boolean conectar(){
    	boolean conectado = false;
		try {
			Class.forName("org.postgresql.Driver");
            String url = "jdbc:postgresql://localhost:5432/dissertacao";  
            String usuario = "postgres";
            String senha = "senhapostgres";
            con = DriverManager.getConnection(url, usuario, senha);
            stm = con.createStatement();
            conectado = true;
        } catch (Exception e) {
        	//System.out.println("Erro em Conectar: " + e.getMessage());
        	while(!conectado){
            	System.out.println("Tentativa de conexao... (status: " + conectado + ").");
    			conectado = this.conectar();
    			System.out.println("Tentativa de conexao... (status: " + conectado + ").");
    		}
        }

        return conectado;
	}

    /**
	 *    Descricao: Encerra os objetos Connection e Statement.
	 * Data Criacao: 14/06/2012
	 */
    public void desconectar(){
        try {
        	con.close();  
		} catch (SQLException e) {
			System.out.println("Erro SQL ao fechar conexao: " + e.getMessage());
			e.printStackTrace();
		}
	}

    /**
	 *    Descricao: Invoca o metodo para executar a SQL.
	 * Data Criacao: 14/06/2012
	 */
    public Integer executarQuery(String query){
    	Integer resp = 0;
    	try {
   			this.conectar();
    		if(query.substring(0, 6).toUpperCase().equals("SELECT")){
            	ResultSet rs = stm.executeQuery(query);
            	if(rs.next())
            		resp = rs.getInt("resp");
            }else{
            	resp = stm.executeUpdate(query);
            }
    		this.desconectar();
    	} catch (SQLException e) {
            System.out.println("Erro SQL ao executar Query: " + e.getMessage());
    	}
    	return resp;
    }

}

Repare que deixei o conectar recursivo, pois não tem lógica ele não conseguir conectar. Eu abro e fechos minha conexão, respectivamente, no inicio e fim de cada método DAO.
Resumindo, o problema é que ele não consegue conectar e isso desencadeia um monte de exception na linha de chamadas de métodos.
Como essa abrodagem recursiva ele consegue conectar quando dá o erro e tudo funciona normal. Até pensei que tivesse extrapolando o número de conexões máximas do postgres, mas averiguei em tempo de execução e tá tudo ok.
Estou rodando no ubuntu com eclipse.
Enfim…

S

Olá amigo

eu uso desta forma no swing:

public FramePrincipal() {

    createConnection();
    
    domains.initApplication(conn);

  }



private void createConnection() {
    try {

   readConfig();
   try {
	Class.forName(driver); // Or any other driver
	System.out.println("driver loaded");
   } catch (Exception x) {
	System.out.println("Unable to load the driver class!");
	x.printStackTrace();
   }

   try {
	conn = DriverManager.getConnection(url, user, password);
        conn.commit();
	System.out.println("connection opened");
   } catch (SQLException x) {
 	System.out.println("Couldn't get connection!");
	x.printStackTrace();
   }

    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }

 public void readConfig() {
       Properties p = new Properties();
        try {
            InputStream con = this.getClass().getClassLoader().getResourceAsStream("config.properties");
            p.load(con);
        } catch (IOException ex) {
            ex.printStackTrace();
            Logger.getLogger(FramePrincipal.class.getName()).log(Level.SEVERE, null, ex);
        }
       url = "jdbc:"+p.getProperty("PROTOCOL")+"://"+p.getProperty("HOSTNAME")+"/"+p.getProperty("DATABASE");
       user = p.getProperty("USER");
       password = p.getProperty("PASSWORD");
       driver = "org.postgresql.Driver";
}


  /**
   * @param context servlet context; used to retrieve database connection settings
   * @return new database connection
   */
  public Connection getConnection() throws Exception {
    return conn;
  }

arquivo de configuração:

config.properties

HOSTNAME=localhost
DATABASE=xxxxxx
USER=postgres
PASSWORD=xxxx
PROTOCOL=postgresql

passe o parametro conn:

public ClientesGridFrameController(Connection conn) {

this.conn = conn;

grid = new ClientesGridFrame(conn,this);

MDIFrame.add(grid);

grid.getDesktopPane().getDesktopManager().maximizeFrame(grid);

}

Silvio Guedes

Criado 18 de junho de 2009
Ultima resposta 26 de jul. de 2012
Respostas 5
Participantes 2