Hallo,
habe jetzt schon in zahlreichen Anläufen versucht, eine PostgreSQL-Datenbank an eine EE-Seite (Tomcat auf gehostetem Server) anzubinden, aber es klappt nicht.
Ist hier jemand, der mit Java EE in Verbindung mit PostgreSQL Erfahrung hat?
Auf dem Server läuft PostgreSQL Version 7.4.17 (hab ich leider keinen direkten Einfluss drauf).
Als JDBC-Treiber habe ich schon mehrere Varianten probiert, aber im Wesentlichen diesen:
[INDENT]http://jdbc.postgresql.org/download/pg74.216.jdbc2ee.jar[/INDENT]
von der Download-Seite für JDBC-Treiber:
[INDENT]Download[/INDENT]
(Der Zeile:
JDK 1.3 + J2EE - JDBC 2 EE. This contains additional support for javax.sql classes.
entnehme ich, dass der angegebe Treiber zuständig sein müsste, stimmt? )
Wenn ich die JSP, die den Treiber einbindet, starte, stürzt der Tomcat ab. Kein HTTP-Output, also auch keine Ausgabe einer Exception über catch. Da es sich um einen gehosteten Server handelt, kann ich nicht in die Log-Datei vom Server schauen (außer, jemand weiß, wie das doch geht? )
Hier also die JSP, die zunächst mal nur zum Ausprobieren entwickelt wurde:
[INDENT]
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<%@ page import = "java.io.*" %>
<%@ page import = "java.sql.*" %>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%
out.println("DB-Test");
String driver = "org.postgresql.Driver";
// --------------------------------------------------------------------------
String user = "user";
String password = "123456";
String url = "jdbc :p ostgresql://localhost/testi";
// --------------------------------------------------------------------------
Connection connection = null;
try
{
Class.forName (driver);
}
catch (ClassNotFoundException e)
{
e.printStackTrace ();
System.exit (1);
}
System.out.println ("driver loaded");
try
{
connection = DriverManager.getConnection (url,
user,
password);
}
catch (SQLException e)
{
e.printStackTrace ();
System.exit (1);
}
System.out.println ("connection opened");
try
{
String sSql = "SELECT test FROM test";
java.sql.Statement st = connection.createStatement();
ResultSet rs = st.executeQuery(sSql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next())
{
String text = rs.getString("test");
out.println("<p>"+text);
}
rs.close();
st.close();
connection.close();
}
catch (Exception ex)
{
out.print(ex);
}
%>
[/INDENT]
Der JDBC-Treiber befindet sich (als pg74.216.jdbc2ee.jar) im Verzeichnis WEB-INF/lib des Projekts und wurde dem Build-Path hinzugefügt.
Ich muss noch dazusagen, dass ich das Projekt mit der lokal (auf meinem Rechner) installierten
8er-PostgreSQL-Version (mit dem entsprechenden JDBC-Treiber für Version 8 natürlich) und angebundener lokaler Testdatenbank
ohne Weiteres zum Laufen bringe.
Mit der 7er Version auf dem gehosteten Server schaffe ich es bisher jedoch wie geschildert nicht.
Hat jemand eine Idee, wie man da ansetzen könnte?
Gruß M-F