您的位置:首页 > 编程语言 > Java开发

Java Spring RPC Hessian 学习笔记

2015-07-30 01:08 525 查看
参考的文章:

http://www.ibm.com/developerworks/cn/education/java/j-jaxrpc/j-jaxrpc.html

说明:从最底层开始讲起

SpringMVC 集成 Hessian

/article/1594776.html

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:

/article/1662091.html

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

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

这是 SpringMVC 的支持:

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


这是 Jersey 的支持:

[code]<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jersey</artifactId>
</dependency>


服务端发布 RPC 的时候,要配置接口和实现类。

配置方式一:

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


配置方式二:

[code]<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,所以我们可以知道,上面的那种方式的方法名字可以任意选取。

客户端调用 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: