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