Servlet und hsqldb

Ozzy Ozborn

Erfahrenes Mitglied
Hi,

ich bin gerade dabei, mit Servlets rumzuarbeiten. Ich habe ein Projekt, mit dem ich über eine GUI ganz schön auf meine HSQLDB-DB zugreifen kann, und will das jetzt parallel mit Servlets machen. Doch da klappt der Datenbankzugriff nicht, er meldet immer einen NullPointerException, weil er sich nicht mit den DB-Verbinden kann.

Muss man da noch etwas in die web.xml eintragen?

Vielen Dank schon einmal im Voraus, Ozzy
 
Was ist das genau für eine Meldung und wie greifst Du zu? Machst Du den Zugriff direkt per JDBC? Dann musst Du die Datenbanktreiber nach <CATALINA_HOME>/common/lib kopieren. Wenn Du den Zugriff per JNDI machst, musst Du zusätzlich <CATALINA_HOME>/conf/server.xml configurieren.

Gruß
 
Hi,

ich habe es jetzt gelöst, indem ich meinen db-Ordner in das Eclipse-Verzeichnis gelegt habe, und dann die absolute Adresse angegeben habe...
Aber schön ist das nicht gerade. Geht das vielleicht auch noch anders?

mfG, Ozzy
 
Hi,

danke, aber sow wirklich bekomme ich das immer noch nicht hin.
Wenn mein Projekt "DBServlet" heißt, und ich unter dem "WEB-INF" meinen Ordner "SaveDB" habe, wo die Datenbank drinliegt, was muss ich ihm dann für einen Pfad geben?

jdbc:hsqldb:hsql://localhost/DBServlet/SaveDB/

geht nicht...

mfG, Ozzy
 
Wie hast Du Deine DB gestartet? Du solltest Sie im Servermodus starten, ich glaube aber Du hast Sie im StandaloneModus gestartet.

Hsqldb Server
This is the preferred way of running a database server and the fastest one. A proprietary communications protocol is used for this mode. A command similar to those used for running tools and described above is used for running the server. The following example of the command for starting the server starts the server with one (default) database with files named "mydb.*".

java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb
The command line argument -? can be used to get a list of available arguments.
 
Hi,

hsql lässt sich in mehreren Modi betreiben. Einmal als eingebettes Datenbanksystem (standalone) und als Server. Im Standalonemodus muss man ihn nicht starten. Der Zugriff erfolgt über Jar-Files.

Der Server allerdings startet in einer eigenen VM. Wie man ihn startet ist im Thread weiter oben beschrieben. Im Standalonemodus lautet die JDBC-URL jdbc:hsqldb:file:c:\OzzysDB – der Teil hinter file: gibt also den Pfad zu der Datenbank an. (Liegt die Datenbank im Eclipse Workspace, kann später die absolute Angabe entfallen.) Im Servermodus lautet die JDBC-URL jedoch jdbc:hsqldb:hsql://localhost/ozzydb.

Du hast die DB offensichtlich im Standalone-Modus laufen. Am besten Du liest nochmal die Doku...
 
Zurück