2013-08-26 16 views
2

很多時候,只要我嘗試訪問某些頁面或單擊按鈕「無法找到有狀態的bean:3j011-udy7sm-hkt798pd -1-hkt7bobh-9「錯誤在JSF項目的屏幕上點擊。有人知道導致此錯誤的原因。javax.ejb.NoSuchEJBException:無法找到有狀態bean:3j011-udy7sm-hkt798pd-1-hkt7bobh-9

+3

所以你的意思是工作有時但並非總是如此?請指定更多信息,您使用的是什麼應用程序服務器或什麼框架?和你從哪裏調用bean? – Soosh

+1

可能您的有狀態會話bean未使用太久。但這只是一個猜測,請添加應用程序服務器,超時以及您的問題的來源。 – Beryllium

+0

@Amir努裏的應用服務器JBoss和我們使用JSF框架,以及管理關係數據的應用程序 – shree18

回答

1

可能是您遇到了超時,並且容器已刪除有狀態會話。

您可以使用@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"); 
    } 
} 
相關問題