En Thu, 15 Jul 2010 15:43:25 -0300, Isidro Blanco <isidro...@gmail.com> 
escribió:

Buenas tardes,

Estoy intentado conectar netbeans 6.8 con postgreSQL las versiones 8.3 y
8.4, he leído que tiene problemas con las conexiones remotas por eso probe
con .3,  pero tanto en una como en otra me salta el error "conection
refused" o lo que es lo mismo "el intento de conexion falló". La aplicación
sólo funciona cuando hago la conexión contra mi bbdd de localhost o
127.0.0.1.

*1. Localhost:* Desde *pgAdmin*, *psql*, la pestaña "*Services*" de
netbeans, tengo acceso a los datos de la base de datos del servidor pero
cuando llamo desde la aplicación me salta el error y no se conecta.

*2. Servidor remoto:* El *servicio* esta iniciado, *pg_hba**.conf* esta
configurado para que mi máquina y la red de la que formo parte podamos
acceder, *postgresql.conf* con el parametro listen_adresses = '*', no tengo
problemas con el firewall, existe el usuario postgres.

Haciendo debug sobre la aplicación he visto que en el problema esta en la
clase DriverManager concretamente en este punto:
 <http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html>
Connection<http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html>
result = di.
driver.connect(url, info);
if (result != null) {
     // Success!
     println("getConnection returning " + di);
     return (result);
}

No entra dentro del if y por lo tanto no se conecta.


Parte de mi clase de conexion es esta:

public static 
java.sql.Connection<http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Connection.html>conexion
;

[...]
        // el nombre de nuestro driver Postgres.
        controlador = "org.postgresql.Driver";

        // llamamos nuestra bd

        URL_bd = "jdbc:postgresql://obras_pruebas";         //localhost
        URL_bd = "jdbc:postgresql://192.168.0.252:5432/obras";
//servidor
remoto

        // usuario postgres
        usuario = "postgres";

        //password
        contrasinal = "Aluman05";
[...]

public synchronized static void inicializar() throws
Exception<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html>
{

        try {

            // Cargamos o controlador ODBC
            if (conexion == null || conexion.isClosed()) {

Class<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html>
.forName(controlador).newInstance();
                conectar(); // conectar coa fonte de datos
            }
        } catch
(Exception<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html>e
) {
            e.printStackTrace();
        }

    }

[...]

public synchronized static void conectar() throws
java.sql.SQLException<http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html>
{

        try {

            //Establecemos la conexión.
            conexion =
DriverManager<http://java.sun.com/j2se/1.5.0/docs/api/java/sql/DriverManager.html>
.getConnection(URL_bd, usuario, contrasinal);

            
DriverManager<http://java.sun.com/j2se/1.5.0/docs/api/java/sql/DriverManager.html>
.setLogWriter(new
java.io.PrintWriter<http://java.sun.com/j2se/1.5.0/docs/api/java/io/PrintWriter.html>
(System <http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html>.out)
);


            //Commit a true
            conexion.setAutoCommit(true);

        } catch
(Exception<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html>e
) {
            e.printStackTrace();
        }

    }

Si existe otro modo de conectarse o cualquier propiedad que pueda cambiar
que no haya mirado o prueba que pueda realizar o en definitiva algo que
pueda hacer, por favor informame.

Un saludo y buen día.


Yo utilizo algo menos complejo. Pero sirve al caso, al menos para mi


import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
import tanoxvon.Main;

public class Coneccion{
    static Connection coneccion = null;

    public Coneccion() throws SQLException{
        System.out.println(" Creando una instancia de la clase");
        try{
            System.out.println(" Buscando el driver de la base de datos 
PostgreSQL");
            Class.forName("org.postgresql.Driver");
        }catch(ClassNotFoundException e){
            System.out.println(" No se encontro el nombre del driver de la base de 
datos PostgreSQL" + e.getMessage());
        }
        System.out.println(" Estableciendo la url de conexión");
        String url = "jdbc:postgresql://192.168.97.80:5432/expediente"; //hay 
que cambiar por el numero de ip o la ubicacion de la maquina
        try{
            System.out.println(" Estableciendo la conexión");
            coneccion = DriverManager.getConnection(url, "pepe", "pepe");
            System.out.println(" Obteniendo los metadatos de la base de datos");
            DatabaseMetaData dbmd = coneccion.getMetaData();
            System.out.println(" Conexión exitosa. Nombre del producto: " + 
dbmd.getDatabaseProductName() + " Versión: " + dbmd.getDatabaseProductVersion());
        }catch(SQLException e){
            System.out.println(" Excepción al establecer la conexión " + 
e.getMessage());
        }
    }
}



--
  Z.M.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a