从无状态Bean返回有状态Java Bean?

从无状态Bean返回有状态Java Bean?,java,jakarta-ee,ejb,javabeans,Java,Jakarta Ee,Ejb,Javabeans,我希望按如下方式处理登录场景: 客户端连接到无状态JavaBean(SLJB)并尝试登录 如果登录成功,SLJB将向用户返回一个有状态javabean(SFJB),以便客户端可以继续使用该应用程序 我目前正在做第二步: return new StatefulBean(some params); 这样做对吗?在我看来,这并不是一个例外: Class org.eclipse.persistence.internal.jpa.EntityManagerImpl is not Serializable

我希望按如下方式处理登录场景:

  • 客户端连接到无状态JavaBean(SLJB)并尝试登录
  • 如果登录成功,SLJB将向用户返回一个有状态javabean(SFJB),以便客户端可以继续使用该应用程序
  • 我目前正在做第二步:

    return new StatefulBean(some params);
    
    这样做对吗?在我看来,这并不是一个例外:

    Class org.eclipse.persistence.internal.jpa.EntityManagerImpl is not Serializable
    
    在运行我的应用程序时,我认为这与所描述的方法有关


    从SLJB向客户端返回对SFJB的引用的正确方法是什么?

    首先,这是完全错误的:

    new StatefulBean(some params)
    
    EJB容器负责创建和销毁bean实例,您永远不应该手动创建它们


    在您的场景中,我将反转流程:客户机连接到有状态bean,该bean可能作为无状态会话bean的助手。不需要传递bean,客户端总是使用相同的bean。

    首先,这是完全错误的:

    new StatefulBean(some params)
    
    EJB容器负责创建和销毁bean实例,您永远不应该手动创建它们


    在您的场景中,我将反转流程:客户机连接到有状态bean,该bean可能作为无状态会话bean的助手。不需要到处传递bean,客户端总是使用相同的bean。

    正如Tomasz提到的,您可能需要重新考虑您的流程


    也就是说,您可以通过使用启动时分配给每个bean的可移植JNDI名称进行JNDI查找来获得一个新的有状态实例。

    正如Tomasz提到的,您可能需要重新考虑您的流程


    也就是说,通过使用启动时分配给每个bean的可移植JNDI名称进行JNDI查找,您可以获得一个新的有状态实例。

    问题是,这就是我的需求的表述方式;有没有一种方法可以使用指定的工作流?@adrianp也许你的需求不应该这样表述?问题是我的需求就是这样表述的;有没有一种方法可以使用指定的工作流?@adrianp也许你的需求不应该这样表述?