可靠地告诉有状态和无状态的EJB 2.0 bean

时间:2012-08-12 21:29:04

标签: java reverse-engineering ejb-2.x

我试图弄清楚一个旧的,有点腐烂的EJB 2.0应用程序,迁移到EJB 3.x是未来的可能性。

EJB 3.x非常适合保持其bean定义紧凑并对重要元数据使用注释。不幸的是,EJB 2.x肯定更复杂,有几个XML文件相互堆叠。添加一些JBoss特定的方法调用和相应的XML文件,结果很乱......

所以,从基础开始:

如何才能可靠地告诉有状态和无状态的EJB 2.0 bean?

1 个答案:

答案 0 :(得分:1)

一条重要的信息是ejb-jar.xml文件的内容。它可能包含明确的元素w.r.t.豆是有状态的还是没有。

对于有状态的bean:

<session>
   ...
   <ejb-name>TestBean</ejb-name>
   ...
   <ejb-class>com.example.TestBean</ejb-class>
   <session-type>Stateful</session-type>
   ...
</session>

对于无状态bean:

<session>
   ...
   <ejb-name>TestBean</ejb-name>
   ...
   <ejb-class>com.example.TestBean</ejb-class>
   <session-type>Stateless</session-type>
   ...
</session>

其他重要的指示可以在bean实现中找到。根据EJB 2.0规范,第7.5.3节:

  

无状态会话bean 不得实现SessionSynchronization接口。

从第7.8节开始,关于无状态bean:

  

会话bean类必须定义一个不带参数的ejbCreate方法。