Dans Glassfish admin, j'ai configuré un pool de connexions JDBC sur lequel je peux effectuer un ping correct. Également dans l’administration de Glassfish, j’ai configuré une ressource JDDI JNDI appelée jdbc / myDb.
Cependant, je ne parviens pas à me connecter depuis Java. J'ai essayé les deux styles d'injection:
@Resource (mappedName="jdbc/myDB")
private DataSource datasource;
J'ai aussi essayé le style de contexte:
Context ctx = new InitialContext();
DataSource datasource = (DataSource)ctx.lookup("jdbc/myDB")
Tout ce que je reçois, c'est java.lang.NullPointerException.
J'ai également essayé différents styles de nommage tels que java: jdbc / myDB ou java: comp / env / jdbc / myDb
Ceci utilise la dernière version de Glassfish (4.1), le dernier pilote Postgres (9.3-1102 JDBC 41) contre Postgres 9.4 et le dernier Java (1.8.0_31-b13).
Réponses:
2 pour la réponse № 1Allez dans le menu JDBC -> Ressources JDBC -> jdbc / __ default
Choisissez votre nom DBName dans le menu déroulant "Nom du pool:" et utilisez
@Resource (mappedName="jdbc/__default")
Attention aux deux "_"!
Au moins ça marche pour moi.
p.s .: Pouvez-vous préciser où le NPE est lancé?