Si vous n'utilisez pas Class.forName(...)
pour charger le pilote manuellement, alors je pense que vous avez rencontré un problème infâme avec maven-assembly-plugin
- il écrase les fichiers portant le même nom lorsqu'ils proviennent de différents jar
s.
Dans votre cas, le mécanisme de découverte du pilote JDBC repose sur un fichier nommé /META-INF/services/java.sql.Driver
, et vous avez au moins deux jar
s contenant un tel fichier dans vos dépendances (pilotes Oracle et Postgres), donc l'un d'eux est perdu après l'exécution de maven-assembly-plugin
.
Vous pouvez utiliser maven-shade-plugin
au lieu de maven-assembly-plugin
pour fusionner correctement ces fichiers, comme décrit ici.
Alternativement, vous pouvez utiliser Class.forName(...)
pour contourner le mécanisme de découverte automatique défaillant.