2012-11-17 59 views
1

我將非常感激清除我這個新EJB3.0及以上版本的一些問題:創建EJB 3.0或3.1

1)如果假設我需要ejbCreateejbActivate和所有其他事件,這樣我怎麼能從新的EJB3.0及以上版本獲得它。

2)我總是有問題找到特定的XML文件來根據各種應用服務器分配JNDI名稱,所以有沒有什麼辦法可以給我JNDI名稱而無需xml文件,也可以使用便攜式名稱每個應用服務器也可以是瑪麗薩EJB部署的應用程序服務器遠程

3)的Java/Linux的任何哥們可以告訴我,我已經託管計劃支持 I)中的Tomcat - 5.5.xSupport II)JDK - 1.6 .x支持 iii)JSP/servlet - 2.0支持

是否有可能部署EJB 3.1,因爲有些地方我已經獲得了th在tomcat不能部署EJB,所以請給我一些建議幫助...

謝謝你... !!! 請幫我... !!!

+3

自ejb 3.0發佈以來已經過去了六年,但它仍然是'這個新的EJB 3.0'...... –

回答

2

1)ejbCreate, ejbActivate等涉及到EJB 2.0,如果您需要在EJB 3.X類似的功能,你應該裝點註釋@PostActivate, @PrePassivate等方法簽名的方法應遵循certain rules,例如用於@PostActivate

與@PostActivate註釋的方法必須遵循以下 要求:

The return type of the method must be void. 
The method must not throw a checked exception. 
The method may be public, protected, package private or private. 
The method must not be static. 
The method must not be final. 

此批註沒有任何屬性。

2)看來,你指的是@Stateless@Stateful註釋namemappedName屬性。欲瞭解更多詳情,請參閱official documentation。根據我的經驗,mappedName比較好,但它是應用程序服務器特定的,例如在Glassfish上它完美地工作。例如:

@Stateless(mappedName="ejb/myBean") 
public class MyFirstBean { 
.. 
} 
+0

感謝您的回答 –

+0

不客氣!如果您認爲我的回答有用,請隨時註冊。 –

3

1)如果假設我需要的ejbCreate,在ejbActivate和所有其他事件,以便 我怎麼可以從新的EJB3.0及以上版本得到它。

在EJB 3及以上,EJB lifecycle通過生命週期註釋,例如處理:@PostConstruct@PreDestroy

2)我一直有問題找perticular XML文件根據各種應用服務器這樣的以alocate一個JNDI 的名字是沒有辦法,我可以給JNDI名稱,而不XML文件,也可以使用任何方式 ,在每個應用服務器也可以是容易找到的 EJB部署的應用程序服務器上的便攜式名remotly

@Stateless@Stateful註解有可能解決這個問題(名稱和mappedName)兩個屬性。然而,

映射名稱是依賴於產品並且通常依賴於安裝。

希望它可以幫助你。

+0

非常感謝... !!!!!!!!! –

0

既然沒有人回答問題3 ..

3)任何哥們可以告訴我,我已經託管的Java/Linux的支持我)的Tomcat的計劃 - > 5.5.xSupport II)JDK - 1.6。 x支持iii)JSP/servlet - 2.0支持

不,您將需要支持Java EE的服務器。閱讀How to deploy EJB based application on Tomcat