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 Zitieren
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 Zitieren
stscit04 Geschrieben 28. April 2003 Geschrieben 28. April 2003 Du bist sicher, dass Du JNDI meinst, nicht etwa JDBC ? Stefan Zitieren
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 Zitieren
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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.