2016-09-26 92 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

因此,經過一段時間後,我終於發現注射在靜態領域無法可靠地工作(至少在我的設置上)。將該字段更改爲實例字段,並且它工作正常。對於面臨相同情況的任何人發佈此答案