se usi setUrl (o se il tuo contenitore come glassfish lo fa)
assicurati di utilizzare la sintassi corretta
====Notare i due punti prima di @ ====
jdbc:oracle:thin:@localhost:1521:sid
o
jdbc:oracle:thin:@localhost:1521/nomeservizio
La classe datasource tenta di analizzarlo e fornisce un errore criptico se la sintassi presenta problemi