Java 尝试将JNDI用于JDBC时出现空指针异常

Java 尝试将JNDI用于JDBC时出现空指针异常,java,jdbc,glassfish,jndi,glassfish-4,Java,Jdbc,Glassfish,Jndi,Glassfish 4,在Glassfish admin中,我设置了一个JDBC连接池,可以ping ok。同样在Glassfish admin中,我设置了一个名为JDBC/myDb的JNDI JDBC资源 但是,我无法从Java连接到它。我尝试了两种注射方式: @Resource (mappedName="jdbc/myDB") private DataSource datasource; 我也尝试过上下文风格: Context ctx = new InitialContext(); DataSource data

在Glassfish admin中,我设置了一个JDBC连接池,可以ping ok。同样在Glassfish admin中,我设置了一个名为JDBC/myDb的JNDI JDBC资源

但是,我无法从Java连接到它。我尝试了两种注射方式:

@Resource (mappedName="jdbc/myDB")
private DataSource datasource;
我也尝试过上下文风格:

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)。

进入菜单JDBC->JDBC Resources->JDBC/\u default

在下拉菜单“Pool Name:”中选择您的数据库名,然后使用

@Resource (mappedName="jdbc/__default")
当心这两个“u”

至少这对我有用

p、 你能指定NPE被抛出的位置吗