Si no usa Class.forName(...)
para cargar el controlador manualmente, entonces creo que enfrentaste un problema infame con maven-assembly-plugin
- sobrescribe archivos con el mismo nombre cuando provienen de diferentes jar
s.
En su caso, el mecanismo de descubrimiento del controlador JDBC se basa en un archivo llamado /META-INF/services/java.sql.Driver
, y tienes al menos dos jar
s que contienen dicho archivo en sus dependencias (controladores de Oracle y Postgres), por lo tanto, uno de ellos se pierde después de ejecutar maven-assembly-plugin
.
Puedes usar maven-shade-plugin
en lugar de maven-assembly-plugin
para fusionar estos archivos correctamente, como se describe aquí.
Alternativamente, puede usar Class.forName(...)
para eludir el mecanismo fallido de detección automática.