zoukankan      html  css  js  c++  java
  • spring对java远程调用的简化(二)之Hessian,Burlap

    Hessian,Burlap是Caucho提供的两种基于Http的轻量级远程服务。
           Hessian像RMI那样,使用二进制消息来建立客户端和服务端之间的交流。与其他二进制远程技术(想RMI)不同的是,它可以移植到其他非Java的语言。
          Burlap是一种基于Xml的远程技术,这使得他可以移植到任何可以解析XML的语言中。比起Hessian,它的可读性更强。和其他基于Xml的远程 技术(如SOAP和XML-RPC)不同,它的消息结构尽可能简单,不需要额外的外部定义语言(如WSDL或IDL).
     针对前面的例子,看看spring对Hessian和Burlap是怎么简化。
    1.Hessian
    1)客户端的配置,只需要修改bean_client.xml的配置

    < beans >
        
    <!-- 客户端 -->
        
    < bean  id ="pf" class ="org.springframework.remoting.caucho.HessianProxyFactoryBean" >
            
    < property  name ="serviceUrl"  value ="http://192.168.1.8:8080/spring/pay.service" />
            
    < property  name ="serviceInterface"  value ="com.open.rmi.ex2.PerfectTimeI" />
        
    </ bean >
        
    < bean  id ="test"  class ="com.open.rmi.ex2.DisplayPerfectTime" >
            
    < property  name ="pf"  ref ="pf" />
        
    </ bean >
    </ beans >

    Hessian和Burlap是基于Http的,http://192.168.1.8:8080/spring/pay.service是服务端的访问地址
    2)服务端的配置,这里
    采用spring的mvc
    先在web.xml中增加下面的配置

    < servlet >
            
    < servlet-name > Dispatcher </ servlet-name >
            
    < servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class >
    </ servlet >
        
    < servlet-mapping >
            
    < servlet-name > Dispatcher </ servlet-name >
            
    < url-pattern > *.service </ url-pattern >
        
    </ servlet-mapping >


    第一节中的bean_server.xml就改配置Dispatcher-servlet.xml文件中了

    < beans >
        
    < bean  id ="urlMapping" class ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
            
    < property  name ="mappings" >
                
    < props >
                    
    < prop  key ="/pay.service" > hessianService </ prop >
                
    </ props >
            
    </ property >
        
    </ bean >
        
    < bean  id ="hessianService"  class ="org.springframework.remoting.caucho.HessianServiceExporter" >
            
    < property  name ="service"  ref ="pt" />
            
    < property  name ="serviceInterface"  value ="com.open.rmi.ex2.PerfectTimeI" />
        
    </ bean >
        
    < bean  id ="pt"  class ="com.open.rmi.ex2.PerfectTime" />
    </ bean >

    跟第一节的相比只是更换了代理类,启动tomcat,在运行TestClient就可以看到输出结果了
    2.Burlap
    只要把bean_client.xml中的HessianProxyFactoryBean 改成BurlapProxyFactoryBean,Dispatcher-servlet.xml中的HessianServiceExporter 改成BurlapServiceExporter,就可以了。
          通过上面可以看到,应用从纯RMI转换到Hessian,Burlap是多么容易啊!

    http://www.blogjava.net/xfan/archive/2006/06/13/52446.html

    成长的乐趣,在于分享!
    大龄程序员,一路走来,感慨颇多。闲暇时写写字,希望能给同行人一点帮助。
    本文版权归作者growithus和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    前端下载远程文件
    Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().
    前端内存泄漏检查判断及处理
    在vue中使用import()来代替require.ensure()实现代码打包分离
    微信小程序将view动态填满全屏
    H5背景音乐自动播放(兼容微信IOS,进程后台切换自动停止播放,本文例子为Vue写法)
    JS获取移动端系统信息(操作系统、操作系统版本、横竖屏状态、设备类型、网络状态、生成浏览器指纹)
    JS判断图片是否加载完毕
    JS深度合并对象
    jsonp跨域请求
  • 原文地址:https://www.cnblogs.com/growithus/p/11012466.html
Copyright © 2011-2022 走看看