Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
tomcat & postgreSQL
Enviado por xavier el día 12 de junio de 2005
Buenas.
Estoy creando un servlet con acceso a base de datos usando tomcat y postgreSQL en linux.
El problema es que no puedo establecer la conexión a la BD haciendo:
conn=DriverManager.getConnection("jdbc:postgresql:escola","dbadmin","*****");
no me acepta la conexion.
El password y contraseña son los correctos y el driver de postgres me lo carga correctamente. Tambien he modificado los ficheros /var/lib/postgres/data/postgresql.conf y /var/lib/postgres/data/pg_hba.conf
para aceptar conexiones TCP.
A ver si me podeis dar alguna idea de lo que puede fallar, pues el 15 tengo que entregarlo.
Gracias
Lo mejor es que visualices la excepción que te lanza, puesto que seguramente el problema sea de permisos dentro del propio postgre. Si es así la excepción de dirá algo del fichero "pg_hba.conf" que es donde se asignan los permisos de conexión a las distintas bases de datos en postgre.
Gracias por responder tan rapido,
He echado un vistazo al fichero "pg_hba.conf" i le he anyadido estas dos lineas:
host all all 127.0.0.1/8 trust
local all all trust
Pero me sigue fallando la conexion. La excepcion completa es:
************************************************
org.postgresql.util.PSQLException: Something unusual has occured to cause the driver to fail. Please report this exception: Exception: java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve) Stack Trace: java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264) at java.security.AccessController.checkPermission(AccessController.java:427) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.SecurityManager.checkConnect(SecurityManager.java:1031) at java.net.InetAddress.getAllByName0(InetAddress.java:1117) at java.net.InetAddress.getAllByName0(InetAddress.java:1098) at java.net.InetAddress.getAllByName(InetAddress.java:1061) at java.net.InetAddress.getByName(InetAddress.java:958) at java.net.InetSocketAddress.(InetSocketAddress.java:124) at java.net.Socket.(Socket.java:178) at org.postgresql.core.PGStream.(PGStream.java:47) at org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:197) at org.postgresql.Driver.connect(Driver.java:139) at java.sql.DriverManager.getConnection(DriverManager.java:525) at java.sql.DriverManager.getConnection(DriverManager.java:171) at Guarda.doPost(Guarda.java:26) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200) at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:51) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:129) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:125) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:595) End of Stack Trace
**********************************************
Dice algo de acceso denegado, i de que no tengo permisos en el socket, es muy raro. Creo que los permisos estan correctos.
La autenticacion 'trust' requiere que el usuario lo sea también del sistema, y la contraseña la misma que en el sistema.
Si quieres usuarios únicos de la base de datos, cambia la ultima palabra por 'password' (sin las comillas). Entonces se supondra que el usuario es de la base de datos (creado desde posgresql con CREATE USER)