2

很多时候,每当我尝试访问某些页面或单击按钮“找不到有状态的 bean:3j011-udy7sm-hkt798pd-1-hkt7bobh-9”时,JSF 项目的屏幕上都会出现错误。有人知道这个错误的原因吗

4

1 回答 1

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");
  }
}
于 2013-08-27T18:27:51.013 回答