ejbCreate方法的EJB 3.0版本是什么?



我想将一些旧的EJB 2.1代码迁移到EJB 3.0,但是在ejbCreate方法中有一些配置错误的处理。该方法是否有EJB 3版本?

编辑:在EJB 2。x ejbCreate可以抛出CreateException。基于@PostConstruct等文档。我不能再抛出任何受控异常。如果我现在不能使用EJB迁移代码,我该如何处理这个问题呢?

Edit2:前端专门处理CreateException,不幸的是检查。

@PostConstruct
public void anyName() {
    //initialization code, dependencies are already injected
}

不仅名称是任意的,您还可以在一个EJB中有几个@PostConstruct方法—但是调用的顺序是未指定的,因此要小心并尽量坚持使用一个方法。

更新:

只有一个方法可以用这个注释来注释。

您需要使用使用注释的EJB 3.0生命周期回调方法

@PostConstruct, @PreDestroy, @PostActivate or @PrePassivate

这些注解可以放在任何public、void和no-arg的方法上。

如果客户端显式地处理由ejbCreate抛出的CreateException,并且您希望使用EJB 3,那么您必须使用有状态会话bean。来自无状态会话bean的ejbCreate异常不会传播到客户端,并且实体bean不支持EJB 3中的注释。在这种情况下,您需要@Init注释:

public interface MyHome extends EJBLocalHome {
  public MyInterface create(int arg) throws CreateException;
}
@Stateful
@LocalHome(MyHome.class)
public class MyBean {
  @Init
  public void init(int arg) throws CreateException {
    if (arg < 0) {
      throw new CreateException();
    }
  }
}

相关内容

  • 没有找到相关文章

最新更新