2009-08-13 156 views
0

我們正在使用JDeveloper 11g。 使用ADF融合的模型和ViewController項目都不是。從JSF Managed Bean調用@EJB

我的web-xml有一個有狀態會話EJB的EJB引用。 我有一個在faces-config中聲明的託管bean。

我想從託管的bean中訪問一個EJB。

我聲明

@EJB (name ="LocationServicesEJB") 
private LocationServicesEJB locationServices; 

當在方法訪問這一點,locationServices爲空。 我在控制檯中看不到任何JNDI類型的問題,因此我認爲它甚至不需要查找。

我是否需要啓用注射或什麼? 或者我是否需要在我的faces-config中將'locationServices'定義爲託管屬性?

請指教。 Thanx

回答

1

你混淆了兩種不同類型的注射。

  1. EJB注入發生在各個註釋中的EJB之間。這種類型由EJB容器(應用服務器或OpenEJB的e.t.c)

  2. 然後是「正常」的注射液(ALA春季)在正常的Java bean 之間發生在臉上,配置定義處理。這種類型由JSF處理。

所以決定你想要做什麼。

我的建議是下載official Java EE tutorial並瀏覽所有主題。

+0

thanx,抱歉只能現在回覆。 但是,你是對的。 我會考慮教程...這是adf的東西,讓我很難過 – guyumu 2009-08-24 18:04:15

+0

現在這個答案中的鏈接被破壞了,是否有可能修改它? – 2011-06-08 15:02:13

+0

鏈接更新爲Oracle URL – kazanaki 2011-07-05 10:46:46