si usa setUrl (o si su contenedor como glassfish lo hace)
asegúrese de usar la sintaxis correcta
====Observe los dos puntos antes de @ ====
jdbc:oracle:thin:@localhost:1521:sid
o
jdbc:oracle:thin:@localhost:1521/nombre de servicio
La clase de origen de datos intenta analizarlo y da un error críptico si la sintaxis tiene problemas