Glassfish - 资源注入不起作用

时间:2010-11-12 19:34:58

标签: jdbc dependency-injection glassfish datasource

使用NetBeans IDE和Glassfish Server。出于某种原因,我无法注入数据源(尝试了一百万种变体)。

private DataSource iserver;
@Resource(name="jdbc/iserver", type=DataSource.class)
public void setIServer(DataSource dataSource) {
    this.iserver = dataSource;
}

(我已经尝试将@Resource注释直接添加到字段中)。连接池和jdbc资源是在Glassfish上配置的,目前我已经添加了变通方法代码(在同一个类中):

ctx = new InitialContext();
iserver = (DataSource) ctx.lookup("jdbc/iserver");

变通方法代码完美无缺。我没有在Glassfish日志中看到任何明显的相关错误。我确实看到了这一点,但不确定它是否相关:

* name不能在org.glassfish的javax.management.ObjectName(ObjectName.java:405)* 的javax.management.ObjectName。(ObjectName.java:1403)中为空。 admingui.common.handlers.ProxyHandlers.getRuntimeProxyAttrs(ProxyHandlers.java:289)atg.glassfish.admingui.common.handlers.ProxyHandlers.getProxyAttrs(ProxyHandlers.java:273)at ...

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

"name" "lookup"

选择-->选项
@Resource(lookup = "java:global/env/jdbc/__default")
DataSource dataSource;

答案 1 :(得分:1)

确保你在会话bean或注入不起作用。

以下是我如何注入

的示例
@Resource(name="jdbc/my_db") private DataSource dataSource;