Tout récemment j'ai été confronté à un problème comment lancer des tests se services java effectuant des requêtes en base de données avec une datasource JNDI !!!
Une des solution aurait été de se connecter directement à la base de données avec une URL standard, mais je ne souhaitait pas modifier le code existant.
Donc voici l'astuce :
reference.add(new StringRefAddr("driverClassName", "oracle.jdbc.OracleDriver")); //Le driver de la base utilisée context.rebind("jdbc/myappl", reference);
Nous n'avez plus qu'à renseigner le user/mot de passe et l'url de la base, bien sur si vous n'utilisez pas une base oracle changez le driver et n'oubliez pas le driver jdbc
Pour pouvoir utiliser ce code vous aurez besoin de rajouter les jars suivant dans votre classpath :
- fscontext.jar
- providerutil.jar
- commons-dbcp-1.4.jar (pour la factory de Datasource)
Les deux premiers jars sont récupérable chez Sun/Oracle
POur vous faire gagner du temps les voici réunit dans une archive : Jars pour utiliser une datasource via JNDI