2016-09-26 66 views
0

(请注意,这些是我在Java EE中的第一步)。 我正在使用Netbeans 8.1,在本地Glassfish服务器上部署EJB模块。 我有一个与GlassFish resource.xml与以下资源定义:Java EE注入无法使用Glassfish

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

而且我在那里我试图注入该资源

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

我曾尝试多种方法在DAO类做这个工作,但我总是以变量ds结束NULL。我一直在调试和查询上下文,并且我总是以名称java:app/jdbc/myDataSource未找到。 也许我没有做正确的事,这是我在Java EE上的第一步(我一直为PHP开发)。请有人指示我,以避免损失更多时间?谢谢

注意:我已将@Named注释添加到SimpleDal类,因为我已经在某处阅读了为了注入工作,我必须在Bean上。

+0

在CDI中,除非在文档中指定,否则很少在静态字段上允许使用某些东西。 – thatsIch

回答

0

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