En Thu, 15 Jul 2010 15:43:25 -0300, Isidro Blanco <[email protected]>
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 ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda