Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Tomcat 4.1 JNDI HSQLDB standalone Exception

Empfohlene Antworten

Hallo Forum,

für die Erstellung einer Homepage benutze ich einen Tomcat 4.1.X. Da ich die Site als WAR-file später auf einem anderen Server deployen möchte, ist es notwendig

eine Verbindung zur Datenbank über JNDI zu realisieren. Dummerweise wirft der Tomcat immer einer Exception beim Versuch die Connection zu besorgen.

Er teilt mit, dass die Treiberklasse 'null' sei. Tomcat ruft dabei seine eigene .forname() Methode auf.

In einem Scriplet innerhalb einer JSP gelang es mir jedoch konventionell über den DriverManager eine Connection aufzubauen. Die Klasse müsste daher eigentlich bekannt sein.

Ich verwende HSQLDB und gebe für den LookUp als Treiberklasse org.hsqlb.jbcDriver

an. Hat jemand eine ähnliche Erfahrung gemacht?

Könnte es daran liege dass ich den standalone Mode und nicht den Servermode der

Datenbank benitze.

Gruß JN1

Hi,

Tomcat hat verschiedene Classloader.

Wo liegt denn das Driverxxx.jar von HSQLDB?

Damit Tomcat die benötigte Klasse beim starten erreichen kann, sollte sie in %TOMCAT_HOME%/common/lib oder %TOMCAT_HOME%/server/lib liegen.

Gruß Jaraz

Du bist sicher, dass Du JNDI meinst, nicht etwa JDBC ?

Stefan

Original geschrieben von stscit04

Du bist sicher, dass Du JNDI meinst, nicht etwa JDBC ?

Hi,

bei Tomcat macht eine JNDI DataSource in Verbindung mit einem Connection Pool schon Sinn.

Im Servlet holst du dir dann einfach die Datasource über den InitialContext.

Gruß Jaraz

Ja Stefan, ich meine JNDI und nicht JDBC.

JNDI ist ein Service über den du Ressourcen unter einem LookUp für den ganzen Container zur Verfügung stellen kannst. Ähnlich wie man Objekt beispielsweise im Application Scope hinterlegen kann, ist es mit JNDI möglich Objekte für alle Appliaktionen eines Application Servers zur Verfügung zu stellen. (Wobei man sicherleich streiten kann, ob der Tomcat ein richtiger Application Server ist ;) )

Wie eingangs beschrieben nutze ich JNDI, um die Datenbank unabhängig von der Webappliaktion zu halten, da noch nicht geklärt ist, welches Datenbanksystem letzlich für die Site genutzt werden soll.

Zu Jaraz

Habe mit hsqldb.jar file bereits ins common/lib bzw. ins lib Verzeichnis meiner Applicaktion kopiert. Ich habe auch schon probiert die Klassen entpackt in die classes Verzeichnisse zu legen. Da ich aber im Scriptlet bereits über den DriverManager die Treiberklasse gefunden habe, verstehen ich nicht warum Tomcat sie nicht laden kann.

ich verwende "org.hslqdb.jdbcDriver". Diese wird zum Beispiel auch in der Doku von Tomcat benutzt.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.