快速业务通道

权衡Apache Geronimo EJB事务选项,第1部分: 容器管理事务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
gt; </container-transaction> <container-transaction>    <method>      <ejb-name>Coverage</ejb-name>      <method-name>*</method-name>    </method>    <trans-attribute>RequiresNew</trans-attribute> </container-transaction> ... </assembly-descriptor> ... </ejb-jar>

Geronimo 配置

既然您明白了在 EJB 部署描述符中指定事务属性的通用格式,那么可以考虑一下如何在 Geronimo 中使用 OpenEJB 实现这一点。在 Geronimo 中开发 EJB 时,可以通过使用 XDoclet 生成所需的大部分单调的 EJB 编程工件 (artifact) 来节省时间。作为这些工件的一部分,XDoclet 生成了 EJB 部署描述符。

作为正常开发过程的一部分,可以在企业 bean 中指定 JavaDoc-style 标识标签。通过在企业 bean 中声明标识标签,XDoclet 可生成 ejbjar.xml。这包括属性定义的任何事务。您不用自己直接编译部署描述符 (ejb-jar.xml)。

在 XDoclet 中使用 @ejb.transaction 标识指定事务属性。在需要使用它时,可以在企业 bean 的方法之上声明它。

XDoclet 配置示例和 ejbjar.xml 生成

下面的代码片断显示了一个简洁的会话 bean 和实体 bean 示例,然后由 XDoclet 生成最终的 ejbjar.xml 文件。首先,清单 3 显示了一个名为 SampleSession 的无状态会话 bean。只需要注意与事务相关的部分即可(用粗体显示)。

清单 3. 会话 bean

package org.my.package.ejb; /** * Sample session bean. * Declare all my XDoclet tags here * ... * ... * @ejb.bean name="SampleSession" *  type="Stateless" *  local-jndi-name="java:comp/env/ejb/SampleSessionLocal" *  jndi-name="org.my.package.ejb/SampleSessionLocal/Home" *  view-type="both" * * @ejb.permission unchecked="true" * * @ejb.interface generate="local,remote" *  remote-class="org.my.package.ejb.SampleSession" *  local-class=" org.my.package.ejb. SampleSession Local" * @ejb.home generate="local, remote" *   remote-class="org.my.package.ejb.SampleSession Home" *  local-class="org.my.package.SampleSession LocalHome" * @ejb.util generate="physical" * ... * ... */ public abstract class SampleSessionBean implements javax.ejb.SessionBean {   /**    * Perform a business operation. Add something    * @param someParam the value    * @ejb.interface-method view-type="both"    * @ejb.transaction   type="Required"    */   public void doSomething(java.lang.String someParam)) {     ...   }   /*    * Perform another business operation. Add something    * @param someParam the value    * @ejb.interface-method view-type="both"    * @ejb.transaction   type="RequiresNew"    */   public void doSomethingElse(java.lang.String someParam)) {     ...   }   /**    * @ejb.create-method    * @ejb.transaction type="Required"    */   public void ejbCreate ()       throws javax.ejb.CreateException   {   }   public void ejbPostCreate ()       throws javax.ejb.CreateException   {   }   protected javax.ejb.SessionContext _ctx = null;  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号