我已经在管理控制面板中使用 JNDI 名称设置了 jdbc 资源:jdbc/shop,我用“Ping 连接”检查它并且它成功了
这是bean代码摘录:
import javax.annotation.Resource;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import javax.sql.DataSource;
@Named
@RequestScoped
public class IndexBean {
// from glassfish config:
// <jdbc-connection-pool datasource-classname="org.postgresql.ds.PGSimpleDataSource" res-type="javax.sql.DataSource" name="ShopPool"
// <jdbc-resource pool-name="ShopPool" jndi-name="jdbc/shop"
@Resource(name="jdbc/shop")
private DataSource db;
public IndexBean() throws SQLException {
if(db == null) {
System.err.println("db is null ?");
}
}
所以你猜到了,我经常得到“db is null?” 日志中的条目。有什么建议可以调试/修复这个问题吗?据我了解,JNDI 名称也是 100% 正确的,因为更改它会导致 jndi 错误。