Glassfish - Keine passenden Treiber für mysql, wenn Sie versuchen, eine Verbindung mit der Datenquelle
Ich versuche, um dieses Lernprogramm abzuschließen:
https://netbeans.org/kb/docs/javaee/ecommerce/connect-db.html
Teil davon ist die Einrichtung einer Datenbank und versucht, eine Verbindung mit datasource und connection-pooling.
Ich Tat alles, was in dem tutorial, aber wenn ich versuche meinen code bekomme ich folgende Fehlermeldung:
javax.- servlet.jsp.JspException: keine Verbindung, DataSource ungültig: "java.sql.SQLException: No suitable driver found for jdbc/affablebean"
Hier ist der code, den es wirft:
<sql:query var = "result" dataSource = "jdbc/affablebean">
SELECT * FROM category, product
WHERE category.id = product.category_id
</sql:query>
Habe ich versucht eine Verbindung zur Datenbank herstellen ohne Verwendung von Verbindungs-pooling und datasource und es funktionierte wie ein Charme.
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver registered");
}
catch (ClassNotFoundException ex) {
Logger.getLogger(SqlService.class.getName()).log(Level.SEVERE, null, ex);
}
Das bedeutet, dass die Treiber in der richtigen lib-Ordner in das glassfish-Verzeichnis, also muss das problem irgendwo anders sein.
Tutorial hat einen Abschnitt zur Problembehandlung, wo Sie beschreiben, dass, wenn ich bekommen diese Fehlermeldung "No suitable driver found for jdbc/affablebean" das bedeutet, dass ich nicht haben-Ressource-Referenz in meinem web.xml. Naja... ich HABE EINS und hier ist es:
<resource-ref>
<description>Connects to database for AffableBean application</description>
<res-ref-name>jdbc/affablebean</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
Habe ich versucht, dieses problem zu lösen, 16 Stunden pro Tag für mehr als zwei Tag, aber noch KEIN Glück.
Habt Ihr irgendeine Idee was falsch ist?
Ich blätterte alle die google und stackoverflow und fand ähnliche Probleme, aber die Lösung, die Sie geben, ist "Stellen Sie sicher, dass der mysql-Treiber in den richtigen Ordner auf dem server".
Warum ich eine Verbindung zu der Datenbank, ohne dass die dataSource-Objekt kann aber nicht verbinden?
- Sie brauchen zu erstellen, die Datenquelle mit dem Namen jdbc/affabelbean von Netbeans.
- Ich habe alles, was im tutorial beschrieben ist. Scheint, wie Sie nicht wissen, die Antwort auf meine Frage, also ich sehe nicht den Punkt zu kommentieren
- Hast u fügen Sie die mysql-jdbc-Treiber in Ihrem Projekt die Bibliotheken??
- Glassfish automatisch den Treiber bereitstellen. Ich habe nicht Sie manuell Hinzugefügt haben. Das merkwürdige ist, dass ich die Verbindung zu der Datenbank über die Klasse.Vorname
- Ich habe das exakt gleiche problem in Glassfish4 aber die gleiche app, es funktioniert in GF3. So könnte es leicht kommen, dass es ein bug in GF4. Was app-server verwenden Sie?
- Der link für das tutorial, hat mir geholfen. Ich wusste nicht, dass es notwendig ist, Neue hinzufügen -> Glassfish -> JDBC-Ressource zu Projekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also habe ich die Lösung gefunden, die genau die gleiche problem ich hatte.
So erscheint es, dass das Problem war innerhalb von web.xml nicht mit einem Verweis auf die Datenquelle.
Fügen Sie einfach,
Ihrem web.xml Datei speichern und ausführen der Datei(Rechte Maustaste in der Datei, und drücken Sie "Run-Datei").
Danach sollten Sie die Registerkarte "Datenbank" pop-up in Ihrem browser der Wahl.
Hatte ich dieselben Fehler,
das problem ist, wenn Sie festlegen, Ressource-Typ:
versuchen Sie es mit:
das ist seltsam in der tutorial text ist (das problem):
aber auf den screenshot, richtig ist.
Hatte ich diverse Probleme mit diesem
https://netbeans.org/kb/docs/javaee/ecommerce/connect-db.html
Teil der ecommerce-tutorial.
Erste problem (keine passenden Treiber fourd) erschienen, die durch unsachgemäße jdbc-Ressource Schöpfung -
ich benutzt 'neue Datei \ glassfish \ jdbc connection pool"
statt 'neue Datei \ glassfish \ jdbc-Ressource'.
Wiederholen Sie diesen Schritt registriert der Treiber korrekt und pool
(angegeben wurde glassfish servel melden, dass die mysql-Treiber hat registrieren auf server-Instanz).
Nach, dass ich nicht Daten über testDataSource.jsp - Fehler war org.apache.derby.client.bin.SqlException: Table/View 'KATEGORIE' existiert nicht.
Ich konnte nicht herausfinden, warum die org.apache.derby.client wurde auch erwähnt und
nach einigen lookup gefunden Diskussion über netbeans-forum:
https://forums.netbeans.org/ntopic61746.html
Dieser Teil der Diskussion war die Lösung für meinen Fall:
versuchen, ändern Sie im Schritt setup-Datei sun-resources.xml oder glassfish-resources.xml
Aufbau einer JDBC-Datenquelle und connection pool
bei Schritt 6 -> ändern Ressourcentyp javax.sql.ConnectionPoolDataSource
und ändern Sie im Schritt setup-Datei web.xml
Die Referenzierung der Datenquelle, aus der Anwendung
in Schritt 4 -> ändern Ressourcentyp javax.sql.ConnectionPoolDataSource
p.s. ich bin mit netbeans 8.0.2, glassfish 4.1 und jdk1.7.0_21.
Es gab keine
javax.sql.ConnectionPoolDataSource
option in Netbeans'Schnittstelle für die 'Ressource Bearbeiten Referenz \ resource Typ' combobox für web.xml.
Also habe ich diesen Wert dort manuell.
Nach einer sehr ermüdenden Recherchen, der überprüfung von Servern tomcat, wildfly und Jboss, keiner schien zu funktionieren,ich hatte problem mit der Registrierung neuer datasource mit glassfish, hinzufügen neuer jdbc-connectionpool werfen würde java.lang.runtimeexception, die Problemumgehung für dieses Problem war neu konfigurieren DerbyPool unter jdbcconnection-pools in der admin-Konsole und Einspeisung mit der gewünschten Datasource-Klassennamen, url,Benutzername,und Kennwort ein, und verweisen Sie die Datenbank auf mysql-server.und es hat funktioniert.
Ich glaube, Sie fügte nicht hinzu
Mysql JDBC Driver
im Projekt Bibliotheken.Manuell hinzufügen
Mysql JDBC Driver
im Projekt Bibliotheken und versuchen Sie es erneut.Ich denke, es wird funktionieren.
Ich habe genau das problem, und sogar durch die Netbeans-IDE, DB-Verbindungs-test in Ordnung ist, während in Glassfish 4, wird es nicht funktionieren, versuchen Sie alles möglich wie include lib in Projekt -, stellen hier und da. Endlich das problem behoben ist, indem Sie entfernen Glassfish und installieren Glassfish 3.1.2.2, die Projekt-Dateien ist genau das gleiche und funktioniert Prima. Denke mal das ist ein bug oder specail Einstellung kann erforderlich Glassfish 4.
Ich hatte das gleiche Problem. Die letzten 4 Stunden war ich auf der Suche nach einer Lösung und es war so einfach für mich...
Stellen Sie sicher, dass der "Status" in der JDBC-Ressource (bei Glassfish Admin-Konsole) Aktiviert ist (Kontrollkästchen aktiviert ist) 🙁
Gleiche problem hier. Ich verbrachte Stunden mit diesem, versucht, einige der Lösungen, die hier angeboten werden, und nur eine hat mich einen Schritt weiter: ändern Sie den Ressourcentyp aus "javax.sql.ConnectionPoolDataSource" zu "javax.sql.DataSource.
Ich sofort gestolpert das nächste problem: die Tabelle "Kategorie" nicht vorhanden. Es ist tatsächlich nicht existieren.
Ich habe bis auf glassfish (dies war meine erste Zeit mit dem Versuch zu verwenden, glassfish) und ging zurück zu Tomcat. Erfolg! Also beschloss ich, es könnte hilfreich sein, zeigen Sie den Menschen auf eine andere mögliche Lösung, die für mich gearbeitet.
Für diejenigen, die interessiert sind, in den Tomcat-Lösung finden Sie auf dieser Seite http://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example. Sehr klare Erklärung mit einem Beispiel. Und vergessen Sie nicht, fügen Sie das JSTL-Tag-Bibliothek zu Ihrem Projekt.
Viel Glück.