2010-08-02 16 views
0

我使用Seam 2.0和我有我的bean中的一個實例變量作爲縫 - @In身份認同不注入和拋出空指針異常

@In Identity identity 

,當我使用identity.getUserName()它拋出NullPointerException。任何人都可以告訴我,我在這裏失蹤了嗎?


更新:我已經定義了bean的實例變量如下:

@In Identity identity; 

然後在我的豆構造我只是添加下面一行的歡迎用戶 -

System.out.println("Welcome - " +identity.getUsername()); 

我看到下面的錯誤在我的Jboss控制檯上:

Caused by: java.lang.NullPointerException 
    at com.lntebg.quality.QualityInspectionPlan.<init>(QualityInspectionPlan.java:63) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at java.lang.Class.newInstance0(Class.java:355) 
    at java.lang.Class.newInstance(Class.java:308) 
    at org.jboss.seam.Component.instantiateJavaBean(Component.java:1315) 
    at org.jboss.seam.Component.instantiate(Component.java:1271) 
    at org.jboss.seam.Component.newInstance(Component.java:1973) 
    ... 279 more 
+2

你會請附上完整的堆棧跟蹤? – 2010-08-02 12:37:05

回答

1

一些想法:

  • 你注入Seam組件內的身份?
  • Seam無法在構造函數內注入。
  • 你在components.xml中有這些代碼片段嗎?

<core:init security-enabled="true" />

<security:identity />

1

Seam並不注入的變量,直到構造函數被調用後,這樣的煤層注入屬性是在構造函數中零 - 因此NPE。

不是在構造函數中引用Seam注入屬性,而是創建一個新的方法,如init()並使用@Create註釋對其進行註釋。這個方法將在對象被實例化並且Seam注入屬性被設置後自動調用。

希望這有助於

克里斯

+0

+1:謝謝Chris,這正是我需要知道的。 – 2011-11-25 00:38:32