Om du inte använder Class.forName(...)
för att ladda drivrutinen manuellt, då tror jag att du stod inför ett ökänt problem med maven-assembly-plugin
- det skriver över filer med samma namn när de kommer från olika jar
s.
I ditt fall bygger JDBC-drivrutinsupptäcktsmekanismen på en fil med namnet /META-INF/services/java.sql.Driver
, och du har minst två jar
innehåller en sådan fil i dina beroenden (Oracle- och Postgres-drivrutiner), därför går en av dem förlorad efter att ha kört maven-assembly-plugin
.
Du kan använda maven-shade-plugin
istället för maven-assembly-plugin
för att slå samman dessa filer på rätt sätt, som beskrivs här.
Alternativt kan du använda Class.forName(...)
för att kringgå den misslyckade mekanismen för automatisk upptäckt.