使用 NetBeans IDE 和 Glassfish 服务器。由于某种原因,我无法注入(inject)数据源(已经尝试了一百万种变体)。
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 日志中没有看到任何明显相关错误。我确实看到了这一点,但不确定它是否相关:
*在 javax.management.ObjectName.construct(ObjectName.java:405) 处,名称不能为 null * 在 org.glassfish 处的 javax.management.ObjectName.(ObjectName.java:1403) 处。 admingui.common.handlers.ProxyHandlers.getRuntimeProxyAttrs(ProxyHandlers.java:289) 在 org.glassfish.admingui.common.handlers.ProxyHandlers.getProxyAttrs(ProxyHandlers.java:273) 在...
有什么建议吗?
最佳答案
通过“lookup”选择选项
“name”
-->
@Resource(lookup = "java:global/env/jdbc/__default")
DataSource dataSource;
关于jdbc - Glassfish - 资源注入(inject)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4168376/