Tomcat 8 - java.sql.SQLException: Der JDBC-Treiber der Klasse '' für die Verbindungs-URL kann nicht erstellt werden 'jdbc: mysql: // xxx / myApp'

9

Ich habe überall im Internet gesucht, um eine Lösung für mein Problem zu finden, aber ich hatte kein Glück! : (

Ich versuche ein Servlet zu entwickeln, das eine Verbindung zu einer MySQL Datenbank (Connection Pool) herstellen und auf einem Tomcat 8 Server bereitstellen kann.

Ich habe eine context.xml-Datei in META-INF so:

%Vor%

In WEB-INF habe ich die Datei web.xml erstellt:

%Vor%

Schließlich verwende ich in der Servlet-Klasse:

%Vor%

Aber in dieser Zeile, wenn ich versuche, eine Verbindung von der Datenquelle zu bekommen, bekomme ich die folgende Ausnahme:

%Vor%

Ich dachte, es könnte durch das Fehlen des JDBC-Treibers verursacht werden, also habe ich mysql-connector-java-5.1.34-bin.jar in:

gesetzt
  1. pom.xml Abhängigkeit
  2. Tomcat-LIB-Ordner
  3. WEB-INF / lib Ordner in der Webapp

aber ohne Glück.

Können Sie mir bitte sagen, was ich falsch mache? Ich fühle mich so noob ...: (

Vielen Dank für Ihre Zeit beim Lesen (und hoffentlich Beantworten) meiner Frage !!!

    
Brutus 25.02.2015, 17:42
quelle

3 Antworten

2

Sieht so aus, als ob Ihnen alles gut geht, also:

driverClassName="com.mysql.jdbc.Driver" (die Großbuchstaben können wichtig sein).

Du platzierst den mysql-connector-java-5.1.34-bin.jar (er muss eine jar extension haben, die in tomcat / lib gefunden werden soll (lege ihn nicht in deinen webapp Pfad, er sollte von tomcat class loader geladen werden) .

Wenn es nicht hilft und Sie Ihre Webanwendung von der IDE starten. Versuchen Sie, die Tomcat-Formularkonsole zu starten und Ihre App manuell bereitzustellen. Wenn Sie mehr als einen Tomcat installiert haben, stellen Sie sicher, dass CATALINA_HOME auf den Wert gesetzt ist, auf den Sie Ihr mysql jar stellen.

    
Zielu 25.02.2015, 18:40
quelle
1

Ein mögliches Problem könnte sein, dass Tomcat den Treiber-Jar während des Classloads mehrmals trifft. Der Treiber-Jar muss sich nur unter dem Tomcat-Lib-Verzeichnis befinden und nicht unter WEB-INF/lib Ihrer Web-Anwendung. Wenn ich den Treiber an beiden Stellen krachte, führte das zu seltsamen Problemen beim Laden von Klassen, was sich in Form von Fehlern manifestierte, die darauf hindeuteten, dass "jdbc-Treiber mit leerer Klasse und Null-URL nicht erstellt werden konnte" . Finden Sie diese Antwort für ein ähnliches Problem in einer anderen Datenbank: Ссылка

Update : Ich starte Tomcat nicht mehr in Eclipse, um sicherzustellen, dass die Eclipse- und Tomcat-Einstellungen nicht verwechselt werden. Stattdessen starte ich einfach tomcat aus dem bin-Verzeichnis und debugge den jvm aus der Ferne Eclipse). Sobald ich diese Änderung vorgenommen habe, konnte ich den Treiber sowohl im Web-INF / lib- als auch im Tomcat-lib-Verzeichnis kritzeln lassen, und das spielte keine Rolle.

    
Suketu Bhuta 21.11.2017 16:23
quelle
1

Schritte zum Beheben von Problemen mit Netbeans / Tomee / MySQL und Auflösen von FAIL - Implementierte Anwendung im Kontextpfad /RA7Web-1.0-SNAPSHOT, aber Kontext konnte nicht gestartet werden:

  1. Bearbeiten Sie server.xml auf Ihrem Tomee-Server mit einem vollständigen Pfadnamen für appBase:

    %Vor%
  2. Fügen Sie Ihrem Projekt web-xml Folgendes hinzu:

    %Vor%
  3. Fügen Sie Ihrer Context.xml Folgendes hinzu:

    %Vor%
  4. Die folgende resources.xml wurde generiert, aber ich musste mehrere Backslashes bearbeiten, damit sie mit meiner URL übereinstimmten:

    %Vor%
Jim Reitz 26.12.2017 23:16
quelle

Tags und Links