2
很多時候,只要我嘗試訪問某些頁面或單擊按鈕「無法找到有狀態的bean:3j011-udy7sm-hkt798pd -1-hkt7bobh-9「錯誤在JSF項目的屏幕上點擊。有人知道導致此錯誤的原因。javax.ejb.NoSuchEJBException:無法找到有狀態bean:3j011-udy7sm-hkt798pd-1-hkt7bobh-9
很多時候,只要我嘗試訪問某些頁面或單擊按鈕「無法找到有狀態的bean:3j011-udy7sm-hkt798pd -1-hkt7bobh-9「錯誤在JSF項目的屏幕上點擊。有人知道導致此錯誤的原因。javax.ejb.NoSuchEJBException:無法找到有狀態bean:3j011-udy7sm-hkt798pd-1-hkt7bobh-9
可能是您遇到了超時,並且容器已刪除有狀態會話。
您可以使用@StatefulTimeout
(EJB 3.1)來設置這個值。從Javadoc引述:
指定的時間有狀態會話bean可以處於空閒狀態(沒有收到任何客戶端調用)的資格之前,由容器去除量。
若要驗證是否確實如此,請添加一個方法@PreDestroy
,以便您可以查看SFSB是否已被刪除。
例子:
@Stateful(name = "xxx")
@StatefulTimeout(value = 15, unit = TimeUnit.SECONDS)
public class Sfsb {
@PreDestroy
public void preDestroy() {
System.out.println("INFO: " + "@PreDestroy");
}
}
所以你的意思是工作有時但並非總是如此?請指定更多信息,您使用的是什麼應用程序服務器或什麼框架?和你從哪裏調用bean? – Soosh
可能您的有狀態會話bean未使用太久。但這只是一個猜測,請添加應用程序服務器,超時以及您的問題的來源。 – Beryllium
@Amir努裏的應用服務器JBoss和我們使用JSF框架,以及管理關係數據的應用程序 – shree18