Hessian实现远程调用的简单案例

本文介绍Hessian远程服务的基本概念及其实现步骤。Hessian是一种基于二进制RPC的远程通讯库,支持通过Web应用提供服务。文章详细描述了如何在服务端创建接口及其实现类,并在客户端通过HessianProxyFactory调用这些服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是Hessian
      Hessian 是一个基于 binary-RPC 实现的远程通讯 library。使用二进制传输数据。
      Hessian通常通过Web应用来提供服务,通过接口暴露。
      Servlet和Spring的DispatcherServlet都可以把请求转发给Hessian服务。
      由以下两种方式提供,分别为:
      com.caucho.hessian.server.HessianServlet、org.springframework.web.servlet.DispatcherServlet。
入门案例
服务端开发:
第一步:创建一个web项目,并导入hessian的jar包
第二步:创建一个接口
  1. public interface HelloService {
  2. public String sayHello(String name);
  3. public List<User> findAllUser();
  4. }
第三步:提供上面接口的实现类
  1. public class HelloServiceImpl implements HelloService{
  2. public String sayHello(String name) {
  3. System.out.println("sayHello方法被调用了");
  4. return "hello " + name;
  5. }
  6. public List<User> findAllUser() {
  7. List<User> list = new ArrayList<User>();
  8. list.add(new User(1, "小王"));
  9. list.add(new User(2,"小白"));
  10. return list;
  11. }
  12. }

第四步:在web.xml中配置服务
  1. <servlet>
  2. <servlet-name>hessian</servlet-name>
  3. <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
  4. <init-param>
  5. <param-name>home-class</param-name>
  6. <param-value>cn.itcast.service.HelloServiceImpl</param-value>
  7. </init-param>
  8. <init-param>
  9. <param-name>home-api</param-name>
  10. <param-value>cn.itcast.service.HelloService</param-value>
  11. </init-param>
  12. </servlet>
  13. <servlet-mapping>
  14. <servlet-name>hessian</servlet-name>
  15. <url-pattern>/hessian</url-pattern>
  16. </servlet-mapping>
客户端开发:
第一步:创建一个客户端项目,并导入hessian的jar包
第二步:创建一个接口(和服务端接口对应)
  1. public interface HelloService {
  2. public String sayHello(String name);
  3. public Object findAllUser();
  4. }
第三步:使用hessian提供的方式创建代理对象调用服务
  1. HessianProxyFactory factory = new HessianProxyFactory();
  2. HelloService proxy = 
  3. (HelloService) factory.create(HelloService.class, "http://localhost:8080/hessian_server/hessian");
  4. String ret = proxy.sayHello("test");
  5. System.out.println(ret);
  6. Object users = proxy.findAllUser();
  7. System.out.println(users);
短信接口....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hspringh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值