# Glassfish 4.1.1 Connection Pool u. Resource Ref



## Keeperjey1 (21. Apr 2021)

Hallo zusammen, Ich habe ein Problem mit einer Web Applikation mit Datenbankanbindung, genauer mit der Referenz Ressource bezüglich des Connection Pool. Unter folgenden Voraussetzungen: Netbeans 12.3, Java JSP, Glassfish 4.1.1, MySql (über Xampp).

Der Connection Pool scheint soweit Erfolgreich denn der Ping funktioniert ( Der Flush noch nicht aber ich denke der kann erst funktionieren nachdem die Verbindung einmal funktioniert hat).

Habe ein Problem damit welche Angaben ich genau machen muss in der von Glassfish-web.xml vorgegebenen Eingabemaske bezüglich Resource Reference_Name, JNDI Name, Principal Name und Principal Passwort (glaube übrigens das ich die Angaben richtig drin habe, aber vielleicht auch nicht, schließlich funktioniert es ja nicht) aber auch in wie weit muss ich die anderen Teile beachten wie: EJB References, Resource Enviroment Reverences, Message Destination Reference. Leider sind in Tutorials im Netz nur veraltete Versionen verfügbar und nachverfolgbar, in denen eben diese Maske ganz anders aussieht.

Habe auch schon den Glassfish-Server von Netbeans entfernt, den MySql-Connetion-jar-File in den lib-Ordner von Glassfish (C:\Users\jey\glassfish-4.1.1\glassfish\domains\domain1\lib) verfrachtet und dann den Glassfish-Server wieder neu in Netbeans zugefügt. (laut Ratschlag im Netz, ob das nötig war und stimmt ist auch unklar)

Wenn ich in meine index.jsp eine Abfrage integriere und das Projekt starte bekomme ich immer folgende Fehlermeldung{style='color:black'>javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for jdbc/fussball"
}

Hier noch ein paar Screenshots um mein Problem besser nach zu vollziehen bzw. auch schon Fehler in meiner Struktur zu erkennen.

Würde mich freuen wenn jemand in der Runde ist, der mit diesem Konstrukt Erfahrung hat und mir hiermit helfen kann.

Danke im Voraus

Gruß Jürgen


----------



## mihe7 (21. Apr 2021)

Was sagt denn das Log-File?


----------



## Keeperjey1 (21. Apr 2021)

Hi mihe, erst mal Danke das du dich gemeldest hast
welches Log-File?
Wenn du dich mit der Thematik auskennst habe ich eigentlich ne andere Frage und zwar:
Ich finde ein Video-Chat mit Zoom und Bildschimteilung bedeutend effektiver als langwieriges hin und her texten. Würde mich freuen wenn du mir auf diese Weise helfen könntest (ich könnte Dir einen Link schicken für ne Zoom-Sesion wenn Du mir mitteilst wann es für Dich ok ist, denn ich bin zur Zeit den ganzen Tag zuhause). Und dann könntest Du ja mal einfach über mein Projekt drüber schauen denn ich könnte mir auch vorstellen das ich irgendwo vielleicht einen Grundlegenden Fehler noch drin habe (ich meine evtl. beim einrichten der Entwicklungsumgebung). Denn egal was ich versuche lauf ich gegen eine Wand dabei bin ich normalerweise nicht völlig Ahnungslos bei der Thematik.
Überlegs dir, mich würde es freuen wenn du mir helfen kannst. Ach ja, wenn Du mir ne SMS senden willst für das wann hier meine Nummer: #########
Nochmal Danke
Gruß Juergen


----------



## mihe7 (21. Apr 2021)

Hau mal Deine privaten Daten raus, die gehören hier nicht hin.

Die Logfiles vom GF liegen unter domain1/logs


----------



## Keeperjey1 (21. Apr 2021)




----------



## mihe7 (21. Apr 2021)

Ja, die server.log kannst Du mal durchschauen, welche Exceptions da ggf. auftreten.


----------



## Keeperjey1 (21. Apr 2021)

[2021-04-20T20:10:54.035+0200] [glassfish 4.1] [SEVERE] [error.finding.properties] [javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.util] [tid: _ThreadID=44 _ThreadName=admin-listener(2)] [timeMillis: 1618942254035] [levelValue: 1000] [[
  RAR8059: Exception while trying to find properties of class [ com.mysql.jdbc.jdbc2.optional.MysqlDataSource ], set log-level toFINE for more information, com.mysql.jdbc.jdbc2.optional.MysqlDataSource]]

[2021-04-20T20:10:54.037+0200] [glassfish 4.1] [SEVERE] [error.finding.properties] [javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.util] [tid: _ThreadID=44 _ThreadName=admin-listener(2)] [timeMillis: 1618942254037] [levelValue: 1000] [[
  RAR8059: Exception while trying to find properties of class [ com.mysql.jdbc.jdbc2.optional.MysqlDataSource ], set log-level toFINE for more information, com.mysql.jdbc.jdbc2.optional.MysqlDataSource]]

Hier sehe ich einen Fehler und zwar properties of class [com.mysql.jdbc.jdbc2.optional.MysqlDataSource] aber es ist eigentlich
folgende [com.mysql.cj.jdbc.MysqlConnectionPoolDataSource] und die ist im Projekt auch entsprechend geändert denn sonst funktioniert der Ping nicht deshalb frage ich mich warum die hier überhaupt drin steht oder kann es sein das der Glassfish-Server aus welchem Grund auch immer wieder darauf zurückgreift


----------



## Keeperjey1 (21. Apr 2021)

könnte ja evtl. bedeuten das ich ein grundlegendes Problem habe bezüglich der einrichtung meiner IDE


----------



## Keeperjey1 (22. Apr 2021)

[2021-04-20T21:06:35.692+0200] [glassfish 4.1] [WARNING] [test.connection.pool.failed] [javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.service] [tid: _ThreadID=46 _ThreadName=admin-listener(4)] [timeMillis: 1618945595692] [levelValue: 900] [[
  RAR8054: Exception while creating an unpooled [test] connection for pool [ fussball ], Class name is wrong or classpath is not set for : com.mysql.cj.jdbc.MySqlConnectionPoolDataSource]]

[2021-04-20T21:06:35.701+0200] [glassfish 4.1] [SEVERE] [] [org.glassfish.admingui] [tid: _ThreadID=45 _ThreadName=admin-listener(3)] [timeMillis: 1618945595701] [levelValue: 1000] [[
  RestResponse.getResponse() gives FAILURE.  endpoint = 'http://localhost:4848/management/domain/resources/ping-connection-pool.json'; attrs = '{id=fussball}']]

hier habe ich noch was gefunden mit der richtigen DataSource aber trotzdem ein Fehler. Irgendwo habe ich da ein Zuordnungs-Fehler aber der Ping funktioniert. Denke das es was mit der Reference Resource zu tun hat aber leider komm ich nicht drauf was genau


----------



## Keeperjey1 (22. Apr 2021)

Oh danke bezüglich der Nummer


----------



## Keeperjey1 (22. Apr 2021)

ich mach für heute Schluss und Danke erstmal


----------



## mihe7 (22. Apr 2021)

Keeperjey1 hat gesagt.:


> MySqlConnectionPoolDataSource


Hm... Mysql müsste mit kleinem s geschrieben sein. Wäre es möglich, dass der Connection Pool im GF bereits eingerichtet ist, dort aber falsch? Schau mal in der Admin Console (http://localhost:4848) nach.


----------



## Keeperjey1 (22. Apr 2021)

Hi, Nein das ist est nicht da ist alles wie es sein muss, sonst würde auch der Ping nicht funktionieren (und ja Du hast recht mit dem kleinen "s" aber das habe ich schon davor behoben). So wie ich das sehe ist innerhalb des Glassfish-Servers scheinbar alles richtig aber die Referenzierung ist irgendwie fehlerhaft bezüglich der Verbindung mit dem Projekt und leider gibt es im Netz auch keine aktuellen Tutorials wo man Schritt für Schritt einfach mal die Sache nachmachen könnte (alles ist mit älteren Versionen, so dass insbesondere die Masken bezüglich der Referenzierung anders sind) bin auch ziemlich Sicher das da das Problem ist aber wo genau ??????.
Und einfach nur mit den ältere Versionen arbeiten funktioniert leider auch nicht mal eben (zumindest bei mir nicht)


----------



## mihe7 (22. Apr 2021)

Ich setz das später mal auf. Wir machen das nicht über die xml-Files, daher muss ich mir das erst anschauen.


----------



## Keeperjey1 (22. Apr 2021)

Vielen Dank erst mal für die Zeit die du dir nimmst


----------



## mihe7 (22. Apr 2021)

So, eben getestet, funktioniert problemlos. 

MySQL-Treiber nach domains1/lib. Glassfisch ggf. neu starten. 
Projekt bekommt eine glassfish-resource.xml mit Definition von Connection Pool und JDBC-Resource (wie bei Dir oben auf dem Bild)
In die glassfish-web.xml kommt das Mapping vom lokalen Ressourcennamen auf den vom Container (wie bei Dir).
Ich hab mir dann ein Servlet angelegt, dort Ressource mit `@Resource` injected, als name-Attribut wird der lokale Ressourcenname angegeben.
Deployed, läuft.


----------



## Keeperjey1 (23. Apr 2021)

Ich muss irgendwo noch einen anderen Dreher drin haben, bei mir funktioniert es leider immer noch nicht. Dennoch vielen Dank für die Zeit und Mühe die Du geopfert hast.
Gruß Jürgen


----------



## mihe7 (23. Apr 2021)

Ich kann Dir nachher mal das Projekt zippen, dann kannst Du es mal ausprobieren.


----------



## Keeperjey1 (23. Apr 2021)

Das wäre echt super Danke, dann könnte ich anhand eines direkten Vergleiches sicher meinen Fehler leichter finden 😃


----------



## mihe7 (23. Apr 2021)

S. Anhang. Die DB "test" mit Benutzer/Passwort "test" enthält eine Tabelle "dummy", die eine VARCHAR-Spalte "WERT" besitzt. Nach dem Start per http://localhost:8080/testprojekt/TestServlet aufrufen. Was den Code betrifft, so habe ich einfach die NetBeans-Geschichten verwendet und da jetzt nicht lange rumgeschissen.


----------



## Keeperjey1 (23. Apr 2021)

Vielen Dank werde mir das die Tage vornehmen

Gruß Jürgen


----------

