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