Jeśli nie używasz Class.forName(...)
aby załadować sterownik ręcznie, myślę, że napotkałeś niesławny problem z maven-assembly-plugin
- nadpisuje pliki o tej samej nazwie, gdy pochodzą z innego jar
s.
W twoim przypadku mechanizm wykrywania sterowników JDBC opiera się na pliku o nazwie /META-INF/services/java.sql.Driver
i masz co najmniej dwa jar
zawierające taki plik w twoich zależnościach (sterowniki Oracle i Postgres), dlatego jeden z nich jest tracony po uruchomieniu maven-assembly-plugin
.
Możesz użyć maven-shade-plugin
zamiast maven-assembly-plugin
aby poprawnie scalić te pliki, jak opisano tutaj.
Alternatywnie możesz użyć Class.forName(...)
aby ominąć wadliwy mechanizm automatycznego wykrywania.