使用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 ...
有什么建议吗?
答案 0 :(得分:3)
从"name"
"lookup"
-->
选项
@Resource(lookup = "java:global/env/jdbc/__default")
DataSource dataSource;
答案 1 :(得分:1)
确保你在会话bean或注入不起作用。
以下是我如何注入
的示例@Resource(name="jdbc/my_db") private DataSource dataSource;