bene23
Lt. Junior Grade
- Registriert
- Nov. 2003
- Beiträge
- 390
Hallo, habe ein 'komisches' Problem...
Möchte von einer JSP-Seite eine Verbindung zu einer Oracle-DB herstellen. Die Methoden hierfür habe ich in eine Klasse 'ConnectToDB' ausgelagert. Wenn ich die DB-Verbindung mit der 'main'-Methode der Klasse herstelle, dann funktioniert alles ohne Probleme. Nur wenn ich von der JSP aus auf die einzelnen Funktionen zugreife, dann bekomm ich jedesmal eine Java.lang.NullPointerException...
Hier erstmal der Code der Klasse ConnectToDB:
Wie gesagt, wenn ich ConnectToDB alleine ausführe, dann funktioniert alles. Rufe ich jetzt das Ganze aber aus der JSP auf, dann gibts einen Fehler.
Hier der Code der JSP:
So, ich hoffe irgendjemand kann mir weiterhelfen... sitze schon ewig an diesem Problem und ich komme einfach auf keinen grünen Zweig...
Vielen Dank im Voraus!
MfG bene
Möchte von einer JSP-Seite eine Verbindung zu einer Oracle-DB herstellen. Die Methoden hierfür habe ich in eine Klasse 'ConnectToDB' ausgelagert. Wenn ich die DB-Verbindung mit der 'main'-Methode der Klasse herstelle, dann funktioniert alles ohne Probleme. Nur wenn ich von der JSP aus auf die einzelnen Funktionen zugreife, dann bekomm ich jedesmal eine Java.lang.NullPointerException...
Hier erstmal der Code der Klasse ConnectToDB:
Code:
package database;
import java.sql.Connection;
import java.sql.DriverManager;
import oracle.jdbc.*;
public class ConnectToDB {
private static Connection conn;
private static String host = "blablabla";
private static String user = "user";
private static String pwd = "pwd";
private static boolean code = false;
/** Creates a new instance of ConnectToDB */
public ConnectToDB (){
}
public static void main (String args[]){
code = loadDriver();
conn = getDBConnection();
code = closeDBConnection();
} // main
/**
* läd den Treiber
*
* @return <code>true</code> bei Erfolg, sonst <code>false</code>
*/
public static boolean loadDriver (){
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
}
catch(Exception ex){
System.out.println("Fehler beim Laden des Datenbank-Treibers (ConnectToDB.loadDriver()): " + ex);
return false;
} // catch
catch(NoClassDefFoundError er){
System.out.println("Klasse nicht gefunden (ConnectToDB().loadDriver())! " + er);
return false;
} // catch
System.out.println("Treiber wurde erfolgreich geladen!");
return true;
} // loadDriver
/**
* Stellt die Verbindung zur Datenbank her
*
* @return <code>Connection</code> bei Erfolg, sonst <code>null</code>
*/
public static Connection getDBConnection(){
try{
// HIER TRITT DER FEHLER AUF
[COLOR="Red"]conn = DriverManager.getConnection("jdbc:oracle:thin:@" + host, user, pwd);[/COLOR]
} // try
catch (Exception ex){
System.out.println("Fehler beim Verbindungsaufbau zur Datenbank (ConnectToDB().getDBConnection())! " + ex);
return null;
} // catch
catch (NoClassDefFoundError er){
System.out.println("Es ist ein unbekannter Fehler aufgetreten (ConnectToDB().getDBConnection())! " + er);
return null;
} // catch
return conn;
} // getConnection()
/**
* Trennt die Datenbankverbindung
*
* @return <code>true</code> bei Erfolg, sonst <code>false</code>
*/
public static boolean closeDBConnection(){
try{
conn.close();
} // try
catch (Exception ex){
System.out.println("Fehler beim Trennen der Datenbankverbindung (ConnectToDB().closeDBConnection())! " + ex);
return false;
} // catch
return true;
} // closeDBConnection()
} // class
Wie gesagt, wenn ich ConnectToDB alleine ausführe, dann funktioniert alles. Rufe ich jetzt das Ganze aber aus der JSP auf, dann gibts einen Fehler.
Hier der Code der JSP:
Code:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="database.ConnectToDB, java.sql.Connection, java.sql.DriverManager, oracle.jdbc.*"%>
<%!
ConnectToDB db;
boolean driverLoad = false;
boolean closeConn = false;
Connection conn = null;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>JSP Page</h1>
<%
db = new ConnectToDB();
driverLoad = db.loadDriver();
if (driverLoad == false){
out.println("Fehler beim Laden des DB-Treibers!\n");
} // if
else{
// HIER GIBTS DEN FEHLER
[COLOR="Red"]conn = db.getDBConnection();[/COLOR]
} // else
if (conn != null){
out.println("DB-Verbindung erfolgreich aufgebaut!\n");
} // if
closeConn = db.closeDBConnection();
if (closeConn == true){
out.println("DB-Verbingund erfolgreich getrennt!\n");
} // if
else{
out.println("Fehler beim Trennen der DB-Verbindung aufgetreten!\n");
} // else
%>
</body>
</html>
So, ich hoffe irgendjemand kann mir weiterhelfen... sitze schon ewig an diesem Problem und ich komme einfach auf keinen grünen Zweig...
Vielen Dank im Voraus!
MfG bene