簡體   English   中英

從無狀態Bean返回有狀態Java Bean?

[英]Returning a Stateful Java Bean from a Stateless Bean?

我想按如下方式處理登錄方案:

  1. 客戶端連接到無狀態Java Bean(SLJB)並嘗試登錄;
  2. 如果登錄成功,SLJB會向用戶返回有狀態Java Bean(SFJB),以便客戶端可以繼續使用該應用程序。

我目前正在做第二步:

return new StatefulBean(some params);

這是正確的方法嗎? 在我看來,因為我得到了例外:

Class org.eclipse.persistence.internal.jpa.EntityManagerImpl is not Serializable

在運行我的應用程序時,我認為它與所描述的方法有關。

將對SFJB的引用從SLJB返回給客戶端的正確方法是什么?

首先,這是完全錯誤的:

new StatefulBean(some params)

EJB容器負責創建和銷毀bean實例,您永遠不應手動創建它們。

在您的場景中,我將反轉流程:客戶端連接到有狀態bean,它可能是無狀態會話bean作為幫助程序。 無需傳遞bean,客戶端總是使用相同的bean。

正如Tomasz所提到的,你可能需要重新思考你的流程。

也就是說,您可以使用我們在啟動時分配給每個bean的可移植JNDI名稱,通過執行JNDI查找來獲取新的有狀態實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM