`
longgangbai
  • 浏览: 7339103 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Burlap中hessian协议研究(四)协议的”生命周期“

阅读更多

服务方法在用户请求调用处理用户的信息

    publicvoid service(ServletRequest request, ServletResponse response)

        throws IOException, ServletException

    {

        HttpServletRequest req = (HttpServletRequest)request;

        HttpServletResponse res = (HttpServletResponse)response;

        由此处代码可以知道客户端请求必须使用post方式,否则报错500,显示必须使用post方式发送

        if(!req.getMethod().equals("POST"))

        {

            res.setStatus(500, "Burlap Requires POST");

            PrintWriter out = res.getWriter();

            res.setContentType("text/html");

            out.println("<h1>Burlap Requires POST</h1>");

            return;

        }

        使用线程锁用于处理多个用户的操作

synchronized(_service)

        {

            创建远程客户端访问的骨架

            if(_skeleton == null)

                _skeleton = new BurlapSkeleton(_service);

            String serviceId = req.getPathInfo();

            String objectId = request.getParameter("ejbid");

            设置服务的处理对象的方法

            if(_serviceinstanceof Service)

                ((Service)_service).setRequestObject(request, serviceId, objectId);

            java.io.InputStream is = request.getInputStream();

            java.io.OutputStream os = response.getOutputStream();

            将接受到的请求信息和响应信息转换

            BurlapInput in = new BurlapInput(is);

            BurlapOutput out = new BurlapOutput(os);

            try

            {

                  调用响应的骨架的方法

                _skeleton.invoke(in, out);

            }

            catch(Throwable e)

            {

                thrownew ServletException(e);

            }

        }

    }

 

    private Class _serviceClass;

    private Object _service;

    private BurlapSkeleton _skeleton;

    privateboolean_isService;

}

 下面提供关于Burlap服务类的源代码

 此类定义的信息类似一个Burlap的”生命周期“!!!!!!!

 关于此处的"生命周期"纯属笔人个人看法?有什么不妥之处请不惜赐教??谢谢!

服务代理工厂类

publicclass BurlapProxyFactory     implements ObjectFactory

备注此类打开远程连接URLConnection使用将用户名和密码一起使用base64加密发送到服务端。

 

远程模型类BurlapRemote类必须知道URL type

 

服务类:此类类似HttpServlet中接口类Servlet

package com.caucho.services.server;

 

import javax.servlet.*;

 服务类接口的

publicinterface Service

{

   

     在Servlet启动时初始化一次

    publicabstractvoid init(ServletConfig servletconfig)

        throws ServletException;

   在客户端每一次请求时调用此方法处理服务信息

    publicabstractvoid setRequestObject(ServletRequest servletrequest, String s, String s1)

        throws ServletException;

    在服务销毁时使用

    publicabstractvoid destroy();

}

 

 

分享到:
评论

相关推荐

    Java远程通讯可选技术及原理.docx

    EJB容器管理组件的生命周期和资源,提供了事务、安全和并发控制等服务。EJB可以是远程访问的对象,客户端通过EJB接口进行调用。 **JMS(Java Message Service)** JMS是一种消息中间件标准,用于Java应用程序之间的...

    Spring+Hibernate+Xfire实现远程分布式调用

    首先,Spring框架在分布式系统中的作用主要是管理服务和组件的生命周期,以及提供依赖注入(DI)功能。DI允许我们将组件之间的耦合度降低,使得代码更易于测试和维护。Spring还提供了一个服务代理模型,可以方便地将...

    spring远程调用和xfire aegis 源代码上传

    这样,你可以将服务暴露为Web服务,同时利用Spring的依赖注入来管理服务的生命周期和依赖关系。 6. **源代码分析**:在提供的链接中,博主可能分享了关于如何在Spring中设置和使用XFire与Aegis的源代码示例。通过...

    spring2.0中文参考手册

    此外,还有Spring的远程访问支持,如RMI、Hessian和 Burlap,这些都使得分布式系统开发变得可行。 总的来说,"Spring 2.0中文参考手册"是一个全面了解和学习Spring 2.0框架不可或缺的资源。它涵盖了从基本概念到...

    spring开发手册

    9. **远程调用**:Spring支持RMI、Hessian、 Burlap等远程调用协议,方便分布式系统的开发。 10. **Web服务**:Spring Web Services模块提供了创建和消费SOAP服务的能力,同时支持WSDL-first和代码-first的开发方式...

    spring framework中文开发参考手册

    在服务调用上,Spring的Remoting模块支持远程过程调用(RPC),如RMI、Hessian、 Burlap等协议,使得分布式系统间的通信更为便捷。 最后,Spring Boot和Spring Cloud的出现简化了Spring应用的开发和部署,提供了...

    spring 培训资料

    Spring的Remoting模块支持Hessian和Burlap等轻量级协议,使得远程调用更为简单。 总的来说,Spring作为一个一站式企业级应用框架,其强大的功能涵盖了从基础设施到业务逻辑的各个层面,而且其无侵入性设计使得...

    spring jar 包详解

    `spring-remoting.jar`支持多种远程调用协议,如RMI、Hessian、Burlap等,使得Spring应用能够跨越网络边界进行交互。 #### spring-jmx.jar JMX(Java Management Extensions)是一种标准的Java技术,用于管理和...

    我的spring参考书

    它提供了一个用于管理对象生命周期和配置的容器,使得开发者可以将注意力集中在业务逻辑上,而非基础设施层面。 二、依赖注入(DI) 依赖注入是Spring框架的基石,它允许开发者在运行时通过外部配置来决定对象之间...

    Spring-Reference_zh_CN(Spring中文参考手册)

    7.3.1. 通知的生命周期 7.3.2. Spring里的通知类型 7.3.2.1. 拦截around通知 7.3.2.2. 前置通知 7.3.2.3. 异常通知 7.3.2.4. 后置通知 7.3.2.5. 引入通知 7.4. Spring里的advisor(Advisor) API 7.5. 使用...

    springJAR包

    它们负责管理应用对象的生命周期和依赖注入(DI)。 2. **Data Access/Integration**:这部分提供了对数据库访问的支持,如JDBC抽象层,ORM(对象关系映射)集成,如Hibernate和MyBatis,以及JPA(Java Persistence...

    Spring中文帮助文档

    3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 ...

    [Pro.Spring.3(2012)].Clarence.Ho.文字版

    读者将了解到不同的远程调用协议(如RMI、Hessian、Burlap等)与Spring Remoting的集成方式,以及如何构建分布式应用系统。 ### 第17章:使用Spring的Web应用程序 本章专注于Spring MVC框架,讲解了如何使用Spring...

    SSM英文文献翻译 (2).docx

    - **容器支持**:Spring作为一个容器,可以管理对象的生命周期和依赖关系,但同时允许在不依赖容器服务的情况下使用业务逻辑。 2. **Web MVC框架** - **DispatcherServlet**:Spring的Web MVC架构基于...

    Spring 2.0 开发参考手册

    7.3.1. 通知的生命周期 7.3.2. Spring里的通知类型 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对...

    Spring结构图.docx

    ApplicationContext是上下文的核心接口,提供了更丰富的功能,如容器生命周期管理和事件传播。 - **EL模块**:表达式语言模块,为Spring提供了一种强大的表达式语言,可以用来访问和修改对象的属性、调用方法,支持...

    spring chm文档

    7.3.1. 通知的生命周期 7.3.2. Spring里的通知类型 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对...

    Spring API

    3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 ...

    SPRING各实用开发包用途及解释

    该库支持BeanFactory接口,这是Spring IoC容器的基本构建块,用于管理对象的生命周期和配置。 ##### (2) spring-beans.jar 此库提供了Spring框架中Bean工厂的具体实现,它实现了BeanFactory接口,并增加了对Bean的...

    开源框架 Spring Gossip

    管理 Bean 从第一个 Spring 应用程式开始,逐步了解何谓依赖注入,以及如何使用 Spring 的容器功能来管理 Bean,了解 Bean 在 Spring 容器中的生命周期。 第一个 Spring 程式 BeanFactory、 ...

Global site tag (gtag.js) - Google Analytics