Jakarta ee 有状态EJB失去其状态

Jakarta ee 有状态EJB失去其状态,jakarta-ee,ejb,Jakarta Ee,Ejb,我有一个ManagedBean SecurityTokenController,它使用有状态的SessionBean SecurityTokenClient。 每次调用控制器时,都会实例化一个新的SecurityTokenClient bean,因此我会丢失状态。我做错了什么 以下是ManagedBean的代码: 下面是有状态会话bean的代码: 所以,每次我调用这个bean时,securityToken都是null。注入的EJB总是不同的。 我做错了什么?没有为有状态bean定义范围。也许你应

我有一个ManagedBean SecurityTokenController,它使用有状态的SessionBean SecurityTokenClient。 每次调用控制器时,都会实例化一个新的SecurityTokenClient bean,因此我会丢失状态。我做错了什么

以下是ManagedBean的代码:

下面是有状态会话bean的代码:

所以,每次我调用这个bean时,securityToken都是null。注入的EJB总是不同的。
我做错了什么?

没有为有状态bean定义范围。也许你应该加上@SessionScoped?是的,我试过了,但结果是一样的。所以我省略了。我再次添加。我想您的EJB有状态bean不会自动与会话关联。我相信你可以使用CDI。更多细节可以在这里找到,你是如何调用控制器的?什么叫控制器?
@ManagedBean
public class SecurityTokenController implements Serializable {
  @EJB
  SecurityTokenClient client;

  public String askToken(){
    return client.getToken().toString();
  }
}
@Stateful
@SessionScoped
public class SecurityTokenClient implements Serializable {
  SecurityToken securityToken;   

  public SecurityTokenVO getToken(){
      if ( null == this.securityToken ) {
          this.securityToken = new SecurityToken();
      }
      return this.securityToken;
  }
}