2011-03-18 53 views
3

我有兩個部署在Jboss 5.1上的ear應用程序(EJB 3.0)。應用程序A的SLSB通過@EJB註釋從應用程序B調用遠程SLSB。 一切工作正常,直到我重新部署應用程序B.然後,來自A應用程序的bean嘗試調​​用B中的一個,並且其引用變爲null。已注入@EJB引用在重新部署後爲空

我想SLSB是彙集和引用注入創建時間,重新部署後,這些代理不刷新某種方式。

我該如何應對?將一個攔截器放在該bean上並檢查是否所有帶註釋的引用都不爲null可以嗎?

+0

我似乎和JBoss 6上的EJB注入有相同的問題,並且只在重新部署之後(到目前爲止)。 – 2011-06-07 21:27:21

回答

1

如果應用程序被重新部署/取消部署或存在網絡故障,則代理對象將失效。

您可以使用ServiceLocator模式來緩存遠程對象的引用。如果發生故障,您可以刪除&,並使用JNDI查找重新創建它們。

否則,而不是使用@EJB來注入遠程bean,您必須手動查找每次耗費資源,但前者是更好的方法。