i118jix Geschrieben 25. April 2003 Geschrieben 25. April 2003 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
Jaraz Geschrieben 25. April 2003 Geschrieben 25. April 2003 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
stscit04 Geschrieben 28. April 2003 Geschrieben 28. April 2003 Du bist sicher, dass Du JNDI meinst, nicht etwa JDBC ? Stefan
Jaraz Geschrieben 28. April 2003 Geschrieben 28. April 2003 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
i118jix Geschrieben 30. April 2003 Autor Geschrieben 30. April 2003 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden