在Glassfish管理员中,我设置了一个可以ping通的JDBC连接池。同样在Glassfish管理员中,我设置了一个名为jdbc / myDb
的JNDI JDBC资源但是我无法从Java连接到它。我尝试了两种注射方式:
@Resource (mappedName="jdbc/myDB")
private DataSource datasource;
我也尝试过Context风格:
Context ctx = new InitialContext();
DataSource datasource = (DataSource)ctx.lookup("jdbc/myDB")
我得到的只是java.lang.NullPointerException。
我也尝试了各种命名方式,例如java:jdbc / myDB或java:comp / env / jdbc / myDb
这是使用最新的Glassfish(4.1),针对Postgres 9.4的最新Postgres驱动程序(9.3-1102 JDBC 41)和最新的Java(1.8.0_31-b13)。
答案 0 :(得分:2)
进入菜单JDBC - > JDBC资源 - > JDBC / __默认
在DropDown菜单“池名称:”中选择您的DBName并使用
@Resource (mappedName="jdbc/__default")
记住两个“_”!
至少这对我有用。
p.s。:你能说明投掷NPE的位置吗?