Java Spring RPC Hessian 学习笔记

1 篇文章 0 订阅
1 篇文章 0 订阅

参考的文章:
http://www.ibm.com/developerworks/cn/education/java/j-jaxrpc/j-jaxrpc.html
说明:从最底层开始讲起

SpringMVC 集成 Hessian
http://blog.csdn.net/isea533/article/details/45038779

PRC 应用的 Java 实现:
http://www.cnblogs.com/flyoung2008/archive/2011/11/12/2246282.html

吴迪和我一起找的一篇文章:
http://www.cnblogs.com/flyoung2008/archive/2011/11/12/2246282.html

深入浅出 rpc:
http://blog.csdn.net/mindfloating/article/details/39474123

昨天下午刚刚接触 RPC,趁着刚刚学习完的时候,赶紧做一下记录。学习和写了一天的代码,总结如下: RPC 通过发布服务的方式,让客户端可以像在本地调用方法调用远程的方法。只不过,要给客户端传递服务的接口。客户端调用接口,就相当于调用了实现类。

使用 Hessian 的时候,还须要有 SpringMVC 的支持,因为我原来是在 Jesey 的项目里面去集成 Hessian 的,怎么都实现不了。所以这里要引起注意。

这是 SpringMVC 的支持:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

这是 Jersey 的支持:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
  1. 服务端发布 RPC 的时候,要配置接口和实现类。

配置方式一:

    @Bean(name="/abc")
    public HessianServiceExporter hessianServiceExporter() {
        HessianServiceExporter export = new HessianServiceExporter();
        export.setService(datahouseService);
        export.setServiceInterface(DatahouseApi.class);
        return export;
    }

配置方式二:

<bean name="/hessianService" class="org.springframework.remoting.caucho.HessianServiceExporter">
    <property name="service" ref="helloService"></property>
    <!-- 配置接口的报名和接口名 -->
    <property name="serviceInterface" value="com.liwei.hessian.service.HelloWorld"></property>
</bean>

我们可以发现:这两种配置方式实现的效果是一致的,下面的方式没有配置 id,所以我们可以知道,上面的那种方式的方法名字可以任意选取。

  1. 客户端调用 RPC 的时候,要配置接口和调用的 URL。

还要注意的一点是:传输的类要实现序列化接口,否则会抛出 readObject: unexpected end of file 这个异常。

官方网站:
http://hessian.caucho.com/#Java

学习 RPC 的感受:人的本事不是与生俱来的,不是你掌握得多少,而是当你面对一个未知问题的时候,你能用多少时间来掌握。

参考资料:


下面的这个来自 github 上的项目示例了如何在 springboot 项目中使用 hessian
https://github.com/mariuszs/hessian-boot-example

在测试这个项目的时候,如果发现包名不一致,上网找了一下,原因如下:
引用
java.lang.ClassNotFoundException: com.a.e.User

测试的时候 两个项目与hessian相关的类,包位置保持一致就OK~


hessian学习 - 菩提树下的杨过 - 博客园
http://www.cnblogs.com/yjmyzz/p/hessian-helloworld.html
说明:我主要参考了这篇文章。

《Spring技术内幕》学习笔记18——Spring使用Hessian实现远程调用 - momomoge的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/momomoge/article/details/7304569

今天开发过程中使用 IDE 遇到的问题解决:
The user operation is waiting for “Building workspace” to complete - 碧海蓝天 - 博客频道 - CSDN.NET
http://blog.csdn.net/yuzhongchun/article/details/8965308

一些相关技术:
Java - 千与的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/shirdrn/article/category/790111

《Spring技术内幕》学习笔记18——Spring使用Hessian实现远程调用 - momomoge的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/momomoge/article/details/7304569

http://blog.csdn.net/chjttony/article/details/5907772

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值