hessian spring配置

一、简介:
    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
    Hessian通过Servlet提供远程服务。需要将匹配某个模式的请求映射到Hessian服务。Spring的DispatcherServlet可以完成该功能,DispatcherServlet可将匹配模式的请求转发到Hessian服务。Hessian的server端提供一个servlet基类, 用来处理发送的请求,而Hessian的这个远程过程调用,完全使用动态代理来实现的,,推荐采用面向接口编程,因此,Hessian服务建议通过接口暴露。 
    
    Hessian处理过程示意图:     
        客户端——>序列化写到输出流——>远程方法(服务器端)——>序列化写到输出流 ——>客户端读取输入流——>输出结果 

二、环境搭建
    服务端:
        1、首先,我们需要提供“一对 或者“N对 ”的 “接口和实现”,因为 Hessian服务端需要提供一个暴露在外面的接口,供客户端调用。
        2、修改项目web.xml文件,设置url映射至 Spring上下文中。
            例如:
                       
            注:这里使用的是 拦截任何请求至spring上下文中
        3、 Spring配置文件中增加Hessian映射处理;最好新建一个 Hessian配置的 xml文件,并引入Spring配置文件中,因为可能会有N个 Hessian映射处理,这样操作便于开发者方便管理
            如下我采用的是新建立 Hessian  xml文件,并引入 Spring配置文件中:

                Spring配置文件:
                    
                这里引入Hessian的配置文件, Hessian配置文件的名称是 “spring-remoting.xml”,名称可自定义。

                       Hessian配置文件:
                                <bean name="/aServiceExporter"
class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="serializerFactory" ref="cscSerializerFactory" />
<property name="service" ref="aServiceImp" />
<property name="serviceInterface" value="com.csc.sns.service.AService" />
</bean>
Hessian的配置文件中,增加bean节点的hessian映射处理,bean可以为N个。bean的class必须指向“ org.springframework.remoting.caucho.HessianServiceExporter ”或者 继承他的子类。
    

    客户端:
        1、首先复制“服务端”的接口文件至“客户端”。
        2、 Spring配置文件中增加Hessian请求处理; 最好新建一个 Hessian配置的 xml文件,并引入Spring配置文件中,因为可能会有N个 Hessian请求处理,这样操作便于开发者方便管理
             如下我采用的是新建立 Hessian  xml文件,并引入 Spring配置文件中:

            Spring配置文件:
                       
            这里引入 Hessian的配置文件,  Hessian 配置文件的名称是 “spring-remoting.xml”,名称可自定义。

            Hessian配置文件:
                 <bean id="aSpring" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<!-- 请求代理 ServiceUrl -->
<property name="serviceUrl">
<value>http://192.168.0.133:8088/meeapp/remoting/aServiceExporter</value>
</property>
<!-- 接口定义 -->
<property name="serviceInterface" value="com.csc.sns.external.service.MService">
</property> 
</bean>
                 Hessian的配置文件中,增加bean节点的hessiany请求处理,bean可以为N个。bean的class必须指向“ org.springframework.remoting.caucho.HessianProxyFactoryBean”或者 继承他的子类。


三、非法验证
    简述:由于项目 Hessian提供接口供客户端访问,那必要的安全措施是不可忽略的,我们在项目中增加安全验证,以防“破坏者”非法调用接口,可以有效的提高项目安全性。
     服务端     
        org.springframework.remoting.caucho.HessianServiceExporte:
         项目映射的请求,总是会经过  HessianServiceExporte 类,那么我们创建一个类,并去继承 HessianServiceExporte,并使映射处理指向这子类,在子类当中,去重写 handleRequest 方法,在 handleRequest方法中,增加接入验证,验证方式自定。
    
     客户端
        org.springframework.remoting.caucho.HessianProxyFactoryBean:
        项目请求处理,总是会经过  HessianProxyFactoryBean 类,那么我们创建一个类,并去继承 HessianProxyFactoryBean,并使请求处理指向这子类,在子类当中,去重写 HessianProxyFactoryBean父类HessianClientInterceptor invoke ”方法,   invoke   方法中,增加提供 "服务端" 验证信息,信息内容以服务端需要内容为准。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值