Java EE注入无法在Glassfish上运行

时间:2016-09-26 21:04:22

标签: dependency-injection cdi java-ee-7

(请善待,这些是我在Java EE中的第一步)。 我正在使用Netbeans 8.1,在本地Glassfish服务器上部署EJB模块。 我有一个glassfish-resource.xml,定义了以下资源:

<jdbc-resource enabled="true" jndi-name="java:app/jdbc/myDataSource"

我有一个DAO课程,我正在尝试注入该资源

@Named
public class SimpleDal {
    @Resource(name = "jdbc/myDataSource", lookup = "java:app/jdbc/myDataSource")
    private static DataSource ds ;

我已经尝试了几种方法来完成这项工作,但我总是在变量ds中得到NULL。我一直在调试和查询上下文,我最终总是找不到名称java:app/jdbc/myDataSource。 也许我没有做对,这是我在Java EE上的第一步(我总是为PHP开发)。有人可以指导我,以免失去更多时间吗?感谢

注意:我已经将@Named注释添加到SimpleDal类中,因为我已经读过某些地方,为了使注入工作,我必须在Bean上。

1 个答案:

答案 0 :(得分:0)

所以,经过一段时间后,我终于发现注射在静态字段上不能可靠地工作(至少在我的设置上)。将字段更改为实例字段并且工作正常。为面临相同情况的任何人发布此答案