PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Beim Einbinden der benötigten Treiber mit dem maven-assembly-plugin wurde kein passender Treiber gefunden

Wenn Sie Class.forName(...) nicht verwenden den Treiber manuell zu laden, dann haben Sie, glaube ich, ein berüchtigtes Problem mit maven-assembly-plugin - Es überschreibt Dateien mit demselben Namen, wenn sie aus verschiedenen jar stammen s.

In Ihrem Fall basiert der JDBC-Treibererkennungsmechanismus auf einer Datei mit dem Namen /META-INF/services/java.sql.Driver , und Sie haben mindestens zwei jar s eine solche Datei in Ihren Abhängigkeiten (Oracle- und Postgres-Treiber) enthalten, daher geht eine davon nach dem Ausführen von maven-assembly-plugin verloren .

Sie können maven-shade-plugin verwenden statt maven-assembly-plugin um diese Dateien wie hier beschrieben korrekt zusammenzuführen.

Alternativ können Sie Class.forName(...) verwenden um den fehlerhaften Autodiscovery-Mechanismus zu umgehen.