【问题标题】:Reliably telling stateful and stateless EJB 2.0 beans apart可靠地区分有状态和无状态 EJB 2.0 bean
【发布时间】:2012-08-09 04:39:06
【问题描述】:

我正在尝试找出一个陈旧且相当陈旧的 EJB 2.0 应用程序,未来可能会迁移到 EJB 3.x。

EJB 3.x 足以保持其 bean 定义紧凑并为重要的元数据使用注释。不幸的是,EJB 2.x 肯定更复杂,多个 XML 文件相互堆积。添加一些特定于 JBoss 的方法调用和相应的 XML 文件,结果是一团糟……

所以,从基础开始:

如何可靠地区分有状态和无状态 EJB 2.0 bean?

【问题讨论】:

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


    【解决方案1】:

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

    对于有状态的 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 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多