Java 尝试将JNDI用于JDBC时出现空指针异常
在Glassfish admin中,我设置了一个JDBC连接池,可以ping ok。同样在Glassfish admin中,我设置了一个名为JDBC/myDb的JNDI JDBC资源 但是,我无法从Java连接到它。我尝试了两种注射方式: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
@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被抛出的位置吗