V aplikácii Glassfish admin som nastavil JDBC pool pool, ktorý môžem ping ok. Aj v aplikácii Glassfish admin som nastavil JNDI zdroj JDBC s názvom jdbc / myDb
Napriek tomu som sa s ním nemohol pripojiť z jazyka Java.
@Resource (mappedName="jdbc/myDB")
private DataSource datasource;
Skúsil som aj štýl kontextu:
Context ctx = new InitialContext();
DataSource datasource = (DataSource)ctx.lookup("jdbc/myDB")
Jediné, čo mám, je java.lang.NullPointerException.
Tiež som skúsil rôzne menovacie štýly ako java: jdbc / myDB alebo java: comp / env / jdbc / myDb
Používa sa najnovší softvér Glassfish (4.1), najnovší ovládač Postgres (9.3-1102 JDBC 41) proti Postgres 9.4 a najnovšie Java (1.8.0_31-b13).
odpovede:
2 pre odpoveď č. 1Máte prístup do ponuky JDBC -> Zdroje JDBC -> jdbc / __ default
Vyberte názov DBName v ponuke DropDown "Pool Name:" a použite
@Resource (mappedName="jdbc/__default")
Pamätajte na dva "_"!
Aspoň to funguje pre mňa.
p.s .: Môžete určiť, kde je NPE hodený?