【问题标题】:Null pointer exception when attempting to use JNDI for JDBC尝试将 JNDI 用于 JDBC 时出现空指针异常
【发布时间】:2015-02-01 10:07:37
【问题描述】:

在 Glassfish 管理员中,我设置了一个可以 ping 通的 JDBC 连接池。同样在 Glassfish 管理员中,我设置了一个名为 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)。

【问题讨论】:

    标签: java jdbc glassfish jndi glassfish-4


    【解决方案1】:

    转到菜单 JDBC -> JDBC 资源 -> jdbc/__default

    在下拉菜单“池名称:”中选择您的 DBName 并使用

    @Resource (mappedName="jdbc/__default")
    

    注意两个“_”!

    至少这对我有用。

    p.s.:你能指定 NPE 的抛出位置吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 2020-11-13
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 2016-01-16
      相关资源
      最近更新 更多