`

基于Spring和EJB的JCF通用调用框架的研究与实现(3)

    博客分类:
  • Java
阅读更多
 
32 JCF执行流程<o:p></o:p>
BizDelegate中,首先会运行DelegateTypeinit方法,执行相关的初始化任务。在前台调用BizDelegate的相关方法的时候,首先检查一下相关参数的正确性,然后构造一个Request对象,在这个方法结束前所调用到的Command都共用这个Request请求对象。在Request中指明要调用的流程Processor和参数的名称和值,在Processor中包含了若干个Command,根据不同的Processor的实现,Command有不同的执行流程。最后交由Delegateexecute方法去执行这个Processor,返回一个Response对象,包括将要返回的数据和结果,执行成功与否的状态包含在对象state中。如下面的代码所示,现在要执行saveContactPerson这个操作,传进来一个ContactPerson参数,将参数传至Delegate中,将要执行SaveContactPersonProcessor这个Processor,然后执行Delegateexecute方法得到相应的结果。这个Processor是在哪里定义的呢?它其实是Command的封装器,封装了Command的运行规则。ProcessorCommand都是Spring中的一个Bean,一个Processor包含什么Command是在Spring的配置文件中定义的。在下面关于如何用Spring构建简单的工作流系统中再做详细的介绍。<o:p></o:p>
    public boolean saveContactPerson(ContactPerson contactPerson, IState state) {<o:p></o:p>
       logger.debug("saveContactPerson delegate.");<o:p></o:p>
       if (DelegateUtil.isNullParam(contactPerson, "contactPerson", state)) {<o:p></o:p>
           return false;<o:p></o:p>
       }<o:p></o:p>
       Request req = new Request();<o:p></o:p>
       req.setServiceName(ServiceConsts.SaveContactPersonProcessor);<o:p></o:p>
       req.setValue("contactPerson", contactPerson);<o:p></o:p>
       try {<o:p></o:p>
           Response resp = getDelegate().execute(req);<o:p></o:p>
           DelegateUtil.setIState(state, resp);<o:p></o:p>
           return ((Boolean) resp.getValue("resultBoolean")).booleanValue();<o:p></o:p>
       } catch (Exception e) {<o:p></o:p>
           DelegateUtil.handleException(e, "saveContactPerson", state);<o:p></o:p>
           return false;<o:p></o:p>
       }<o:p></o:p>
    }
<o:p> </o:p>
EjbDelegate中将请求转发给SLSB,它将执行SLSBexecute方法。在SLSB的远程接口中定义了一个商务方法execute。在Home接口中只定义一个create方法。在init方法中得到SLSBHome接口,只在初始化的时候运行一次。如下所示:<o:p></o:p>
public interface BizFacadeRemote  extends EJBObject<o:p></o:p>
{<o:p></o:p>
   public Response execute(Request request)  throws Exception;<o:p></o:p>
}<o:p></o:p>
                   SLSB的远程接口<o:p></o:p>
<o:p> </o:p>
public interface BizFacadeHome  extends javax.ejb.EJBHome<o:p></o:p>
{<o:p></o:p>
   public BizFacadeRemote create() <o:p></o:p>
            throws CreateException,RemoteException;<o:p></o:p>
}<o:p></o:p>
                 SLSBHome接口<o:p></o:p>
<o:p> </o:p>
    private static BizFacadeHome home;<o:p></o:p>
    private static boolean state = false;<o:p></o:p>
public Response execute(Request request) throws Exception{<o:p></o:p>
       return getSessionFacade().execute(request);<o:p></o:p>
    }<o:p></o:p>
public BizFacadeRemote getSessionFacade() throws RemoteException, CreateException<o:p></o:p>
    {<o:p></o:p>
       return home.create();<o:p></o:p>
    }<o:p></o:p>
    public  boolean init(String jndiName)<o:p></o:p>
    {<o:p></o:p>
       if (state) {<o:p></o:p>
           return state;<o:p></o:p>
       }<o:p></o:p>
       home = (BizFacadeHome) ServiceLocator.getInstance().getOne(jndiName);<o:p></o:p>
       state = true;<o:p></o:p>
       if (home == null) {<o:p></o:p>
           logger.error("Delegate get Home Interface fail,jndi = "+ jndiName);<o:p></o:p>
           state = false;<o:p></o:p>
       }<o:p></o:p>
       return state;<o:p></o:p>
    }
                   EjbDelegate的关键代码<o:p></o:p>
<o:p> </o:p>
分享到:
评论

相关推荐

    spring和EJB3的一些包

    Spring 和 EJB3 是两种在企业级 Java 应用开发中广泛使用的框架。Spring 框架以其轻量级、模块化和灵活的设计而闻名,而 EJB3(Enterprise JavaBeans 3)则是 Java EE(现在称为Jakarta EE)平台的一部分,提供了...

    基于动态代理的Java远程调用框架的研究1

    总结起来,基于动态代理的Java远程调用框架旨在克服RMI和EJB的一些缺点,提供更加简洁、灵活和高效的远程调用解决方案。它利用Java的动态代理特性,降低了分布式系统开发的复杂性,同时保持了高度的可扩展性和可定制...

    spring集成ejb

    Spring 集成 EJB(Enterprise JavaBeans)是将轻量级的 Spring 框架与企业级的 EJB 3.x 技术相结合的一种方式,以实现更灵活且高效的企业应用开发。Spring 提供了一个丰富的IoC(Inversion of Control,控制反转)和...

    Struts2+Spring+EJB框架整合实例

    Struts2、Spring和EJB(Struts2+Spring+EJB,简称SSE)是Java企业级开发中常用的三大框架,它们各自承担着不同的职责,共同构建了一个强大的应用架构。Struts2作为MVC(Model-View-Controller)框架,负责处理用户...

    ejb3+spring+struts实现简单银行系统

    【ejb3+spring+struts实现简单银行系统】 在Java开发领域,EJB(Enterprise JavaBeans)3、Spring框架和Struts框架是常见的企业级应用开发技术,它们结合使用可以构建高效、可扩展的Web应用程序,特别是对于复杂的...

    ejb spring

    3. **Spring与ejb的协作**:在某些场景下,会话bean可能只负责协调工作,而具体的业务逻辑由Spring的bean来执行。这种方式可以将 ejb 的强健性与 Spring 的易用性结合在一起。 **CommonEjbProj项目概述** ...

    struts2+spring+ejb3源代码(完整版)

    Struts2、Spring和EJB3是Java Web开发中的三个重要框架,它们分别在MVC模式、依赖注入和企业级服务方面发挥着关键作用。这个压缩包提供的源代码是一个完整的项目示例,展示了如何将这三个框架集成到一个应用程序中。...

    JNDI调用分布式EJB3 通用接口

    标题“JNDI调用分布式EJB3 通用接口”意味着我们将探讨如何使用JNDI来查找和调用分布在不同节点上的EJB3组件。EJB3中的一个重要特性是它可以跨网络进行分布,这使得应用程序能够利用多台服务器的资源,提高可伸缩性...

    基于Facade的EJB远程调用技术

    基于Facade的EJB远程调用技术 基于Facade的EJB远程调用技术

    Struts + Spring + EJB3 demo

    Struts、Spring和EJB3是Java开发中的三个重要框架,它们在企业级应用程序开发中发挥着关键作用。Struts提供了MVC(Model-View-Controller)架构,Spring强化了依赖注入和面向切面编程,而EJB3则是Java EE平台上的...

    spring with ejb3

    标题 "spring with ejb3" 暗示了我们即将探讨的是如何在Spring框架中集成和使用EJB 3(Enterprise JavaBeans 3)技术。EJB 3是Java EE平台的一部分,它提供了用于构建企业级应用的服务和组件模型。Spring则是一个轻...

    Hibernate+Spring+EJB+Ajax-关于这四种技术的详细讲解

    在IT行业中,Hibernate、Spring、EJB(Enterprise JavaBeans)和Ajax是四个非常重要的技术,它们各自在软件开发的不同方面发挥着关键作用。下面将分别详细介绍这些技术,并探讨它们之间的协同工作方式。 **...

    各种EJB之间的调用示例

    Enterprise JavaBeans(EJB)是Java EE平台中的核心组件,用于构建可扩展、安全和事务处理的服务器端应用程序。EJB提供了多种类型的组件,包括Session Beans、Message-driven Beans和Entity Beans,它们各自承担不同...

    《JavaEE实用开发指南:基于Weblogic+EJB3+Struts2+Hibernate+Spring》-- part2/3

    《JavaEE实用开发指南:基于Weblogic+EJB3+Struts2+Hibernate+Spring》-- part2/3

    EJB分布式远程调用的小例子的简单实现

    EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于...通过接口定义、EJB实现、JNDI查找和客户端调用,我们可以构建起可靠的分布式系统。此示例提供了一个简单但实用的起点,帮助开发者理解并实践这一技术。

    精通JSF基于EJB HibernateSpring整合天发与项目实践 书本源码

    《精通JSF基于EJB Hibernate Spring整合天发与项目实践》是一本深入讲解Java服务器页面(JavaServer Faces,简称JSF)、企业级JavaBean(Enterprise JavaBeans,简称EJB)、Hibernate对象关系映射(Object-...

Global site tag (gtag.js) - Google Analytics