管理コントロール パネルで JNDI 名: jdbc/shop を使用して jdbc リソースをセットアップしました。「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名を変更するとjndiエラーが発生するため、私が理解しているように、JNDI名も100%正しいです。