tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von slu » 13.07.2020 17:28:56

Hallo,

ich baue mir gerade ein Testsystem mit Debian 10 und Alfresco auf.

Paket Debianlibmariadb-java ist installiert und die /usr/share/java/mariadb-java-client.jar an folgende Stellen kopiert:
/var/lib/tomcat9/webapps/alfresco/WEB-INF/lib
/var/lib/tomcat9/webapps/share/WEB-INF/lib
/var/lib/tomcat9/lib

Benutzer und Gruppe der .jar ist tomcat:tomcat

Der Connector ist in Alfresco konfiguriert:

Code: Alles auswählen

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?useUnicode=yes&characterEncoding=UTF-8]
https://docs.alfresco.com/6.2/tasks/mysql-config.html

Trotzdem kann er ihn nicht finden, ich hab jetzt schon alle möglichen Optionen mit mysql und mariadb ausprobiert.

Code: Alles auswählen

[2020-07-13 17:25:33] [info] INFORMATION: Initializing Spring root WebApplicationContext
[2020-07-13 17:25:37] [info] Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'
[2020-07-13 17:25:37] [info] java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
Irgend eine Idee was ich hier falsch mache?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von hec_tech » 13.07.2020 19:38:10

Der liest deine Konfiguration nicht da er offensichtlich den falschen Treiber ladet.

Ansonsten müsste ja ein CNFE für com.mysql.jdbc.Driver kommen. Diese kommt aber für den ich nehme mal an Standardtreiber org.gjt.mm.mysql.Driver.
Liegen die Konfigurationsdateien an der richtigen Stelle. Wurde das ding redeployed?

lg
Gregor

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von novalix » 13.07.2020 23:29:29

Versuch es mal mit dem in der Anleitung angegebenen mysql-connector-java. Die Dinger funktionieren üblicherweise auch mit mariadb. Ist aber immer so ein wenig "Lottospiel".
Ich habe erst kürzlich eine uralte Java-Webanwendung auf ein aktuelles Buster mit mariadb gezogen. Das funktioniert mit dem mysql-connector 3.17 aus dem Tomcat 4! Ich will gar nicht wissen, wieso.
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von hec_tech » 14.07.2020 09:41:59

MySQL/MariaDB Treiber ist leider ein Drama - zumindest ist das auch meine Erfahrung. Ich habe meistens Probleme bei der Performance gesehen sollte man mal den richtigen Treiber gefunden haben.

Wenn die Möglichkeit besteht PostgreSQL zu vewenden sollte man es machen. Da erspart man sich sehr viele Probleme.

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von slu » 14.07.2020 10:52:48

hec_tech hat geschrieben: ↑ zum Beitrag ↑
13.07.2020 19:38:10
Der liest deine Konfiguration nicht da er offensichtlich den falschen Treiber ladet.
Ich denke da könntest Du recht haben, ich hab jetzt mal

Code: Alles auswählen

db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost:5432/alfresco
in die Konfig geschrieben und er meckert immer noch.

Mein Konfig liegt hier:
/usr/share/tomcat9/shared/classes/alfresco-global.properties

Hintergrund:
Wir haben ein Alfresco 4.x auf Debian 8 bei dem jetzt der Support ausgelaufen ist, dringend Zeit für ein Upgrade (der Server steht nur im Intranet).
Leider wurde das Alfresco damals mit MySQL aufgesetzt und mir ist ein Wechsel zu Postgres im Moment zu heikel.
Mein Plan war daher ein Testsystem mit aktuellem Debian und einem aktuellen Alfresco aufzusetzten, die Daten zu importieren und wenn alles läuft auf einem neuen Testsystem versuchen die Datenbank zu wechseln.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von slu » 14.07.2020 10:54:57

novalix hat geschrieben: ↑ zum Beitrag ↑
13.07.2020 23:29:29
Versuch es mal mit dem in der Anleitung angegebenen mysql-connector-java.
Das könnte ich als nächstes versuchen, im Moment habe ich viel mehr den Verdacht das meine alfresco-global.properties Konfig nicht verarbeitet wird.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von slu » 14.07.2020 11:00:27

Was mir auch nicht klar ist, es gibt nur eine Stelle wo diese driverClass angegeben ist und die ist auskommentiert:

Code: Alles auswählen

root@dmstest:/var/lib/tomcat9/webapps# grep -r "org.gjt.mm.mysql.Driver" *
alfresco/META-INF/context.xml:  <!-- Resource defaultTransactionIsolation="-1" defaultAutoCommit="false" maxActive="100" initialSize="10" password="alfresco" username="alfresco" url="jdbc:mysql:///alfresco" driverClassName="org.gjt.mm.mysql.Driver" type="javax.sql.DataSource" auth="Container" name="jdbc/dataSource"/-->
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von slu » 14.07.2020 13:21:53

Wo genau gehört die alfresco-global.properties hin?
https://docs.alfresco.com/6.2/concepts/ ... cture.html

/usr/share/tomcat9/shared/classes/alfresco-global.properties
oder
/var/lib/tomcat9/shared/classes/alfresco-global.properties

Code: Alles auswählen

[2020-07-14 12:46:38] [info] Server version name:   Apache Tomcat/9.0.31 (Debian)
[2020-07-14 12:46:38] [info] Server built:          Apr 25 2020 12:24:56 UTC
[2020-07-14 12:46:38] [info] Server version number: 9.0.31.0
[2020-07-14 12:46:38] [info] OS Name:               Linux
[2020-07-14 12:46:38] [info] OS Version:            4.19.0-9-amd64
[2020-07-14 12:46:38] [info] Architecture:          amd64
[2020-07-14 12:46:38] [info] Java Home:             /usr/lib/jvm/java-11-openjdk-amd64
[2020-07-14 12:46:38] [info] JVM Version:           11.0.7+10-post-Debian-3deb10u1
[2020-07-14 12:46:38] [info] JVM Vendor:            Debian
[2020-07-14 12:46:38] [info] CATALINA_BASE:         /var/lib/tomcat9
[2020-07-14 12:46:38] [info] CATALINA_HOME:         /usr/share/tomcat9
/usr/share/tomcat9/ müsste doch stimmen, warum ließt er mir die Datei nicht...?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von habakug » 15.07.2020 19:28:59

Hallo,

du solltest in der "<TOMCAT_HOME>/conf/catalina.properties" den shared.loader aktiviert haben:

Code: Alles auswählen

shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
In das /shared/lib/-Verzeichnis kommt das Jar für die Datenbank, z.B. von hier [1]. Das wird dann von Tomcat für alle anderen Anwendungen zur Verfügung gestellt.
Die alfresco-global.properties kommt in /WEB-INF/classes.

Gruss, habakug

[1] https://dev.mysql.com/downloads/connector/j/
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von slu » 16.07.2020 10:41:15

habakug hat geschrieben: ↑ zum Beitrag ↑
15.07.2020 19:28:59
du solltest in der "<TOMCAT_HOME>/conf/catalina.properties" den shared.loader aktiviert haben:
Wie ist das TOMCAT_HOME definiert?

Code: Alles auswählen

root@dmstest:/var/lib/tomcat9# locate catalina.properties
/etc/tomcat9/catalina.properties
/usr/share/tomcat9/etc/catalina.properties
Welche ist die richtige?
Mir ist unklar warum es hier zwei mal diese Konfig gibt.
habakug hat geschrieben: ↑ zum Beitrag ↑
15.07.2020 19:28:59

Code: Alles auswählen

shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
Ok ${catalina.base} ist klar, ergibt sich aus dem Logging:
[info] CATALINA_BASE: /var/lib/tomcat9
habakug hat geschrieben: ↑ zum Beitrag ↑
15.07.2020 19:28:59
Die alfresco-global.properties kommt in /WEB-INF/classes.
Du meinst dann hier?
/var/lib/tomcat9/webapps/alfresco/WEB-INF/classes

Mir ist das nicht ganz klar, auf dem Debian 8 und dem 4er Alfresco liegt die hier:
/usr/share/tomcat7/shared/classes/alfresco-global.properties
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von novalix » 16.07.2020 12:36:32

Klarheit bringt:

Code: Alles auswählen

ls -l /var/lib/tomcat9/
insgesamt 12
lrwxrwxrwx 1 root   root     12 Apr 25 14:24 conf -> /etc/tomcat9
drwxr-xr-x 2 tomcat tomcat 4096 Apr 25 14:24 lib
lrwxrwxrwx 1 root   root     17 Apr 25 14:24 logs -> ../../log/tomcat9
drwxr-xr-x 2 root   root   4096 Jul  4 04:31 policy
drwxrwxr-x 4 tomcat tomcat 4096 Jun 27 21:30 webapps
lrwxrwxrwx 1 root   root     19 Apr 25 14:24 work -> ../../cache/tomcat9
Es hat einiges an Umbauarbeiten in Paketmanagement gegeben, seit der tomcat7 Installation, auf die Du Dich beziehst.
"/etc/tomcat9" ist definitiv der Pfad, unter dem Konfigurationen abgelegt werden.
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von slu » 16.07.2020 13:13:44

Danke für den Hinweis!
Ich hab tatsächlich erst in /var/lib/tomcat9/conf ein ls -l abgesetzt, auf die Idee das der ganze Ordner verlinkt ist bin ich irgendwie nicht gekommen. :facepalm:

Die Alfresco Anleitung [1] ist eigentlich richtig gut, trotzdem hänge ich immer noch am gleichen Problem fest.
Werde jetzt mal meine VM zurück setzen und nochmal mit den *.war Files beginnen, das kann doch nicht so schwer sein. :wink:

[1] https://docs.alfresco.com/6.2/tasks/alf ... stall.html
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von slu » 17.07.2020 12:21:55

Mir ist nicht klar warum tomcat die alfresco-global.properties aus /var/lib/tomcat9/shared/classes nicht lesen will obwohl der Pfad gesetzt ist:
/etc/tomcat9/catalina.properties

Code: Alles auswählen

shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
Lege ich sie wie vorgeschlagen nach WEB-INF geht es:
/var/lib/tomcat9/webapps/alfresco/WEB-INF/classes/alfresco-global.properties
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von habakug » 18.07.2020 11:11:21

Hallo,
@slu:
Ist denn das [1] von dir?
Der User findet die "Lösung" dann ja auch selbst, eine Antwort der Community steht noch aus.

Gruss, habakug

[1] https://hub.alfresco.com/t5/alfresco-co ... 385#M20286
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: tomcat9 | mariadb | Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver' | Alfresco

Beitrag von slu » 18.07.2020 11:25:12

@ habakug,

ja ich hatte das mal "parallel" im Alfresco Forum gefragt (wollte den Link hier noch posten), allerdings hat sich da eure Vermutung nur bestätigt.
Mir ist nach wie vor nicht klar warum der Tomcat die alfresco-global.properties nicht aus /va/lib/tomcat9/shared/classes lesen will, das ist aber vermutlich kein Alfresco Problem.

Da ich leider nicht so richtig weiter komme (aktuell hänge ich an den Solr6 Alfresco Search Services) möchte ich mal als nächste dieses Script [1] probieren.
Vielleicht lässt sich das auf Debian umbauen (ggf. wären wir auch für ein Sponsoring bereit), vor erst muss mal ein Ubuntu her halten um zu sehen ob es überhaupt läuft.

[1] https://github.com/loftuxab/alfresco-ubuntu-install
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Antworten