zoukankan      html  css  js  c++  java
  • Hessian基础入门案例

      Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

          Hessian 是一个基于 binary-RPC 实现的远程通讯 library。使用二进制传输数据。
          Hessian通常通过Web应用来提供服务,通过接口暴露。
          Servlet和Spring的DispatcherServlet都可以把请求转发给Hessian服务。
          由以下两种方式提供,分别为:
          com.caucho.hessian.server.HessianServlet、org.springframework.web.servlet.DispatcherServlet。

    服务端开发:
    第一步:创建一个web项目,并导入hessian的jar包
    第二步:创建一个接口
        public interface HelloService {
            public String sayHello(String name);
            public List<User> findAllUser();
        }
    第三步:提供上面接口的实现类
        public class HelloServiceImpl implements HelloService{
            public String sayHello(String name) {
                System.out.println("sayHello方法被调用了");
                return "hello " + name;
            }

            public List<User> findAllUser() {
                List<User> list = new ArrayList<User>();
                list.add(new User(1, "小王"));
                list.add(new User(2,"小白"));
                return list;
            }
        }
    第四步:在web.xml中配置服务
        <servlet>
            <servlet-name>hessian</servlet-name>
            <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
            <init-param>
                <param-name>home-class</param-name>
                <param-value>cn.rodge.service.HelloServiceImpl</param-value>
            </init-param>
            <init-param>
                <param-name>home-api</param-name>
                <param-value>cn.rodge.service.HelloService</param-value>
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>hessian</servlet-name>
            <url-pattern>/hessian</url-pattern>
        </servlet-mapping>

    客户端开发:
    第一步:创建一个客户端项目,并导入hessian的jar包
    第二步:创建一个接口(和服务端接口对应)
        public interface HelloService {
            public String sayHello(String name);
            public Object findAllUser();
        }
    第三步:使用hessian提供的方式创建代理对象调用服务
        HessianProxyFactory factory = new HessianProxyFactory();
        HelloService proxy =
            (HelloService) factory.create(HelloService.class, "http://localhost:8080/hessian_server/hessian");
        String ret = proxy.sayHello("test");
        System.out.println(ret);
        Object users = proxy.findAllUser();
        System.out.println(users);

    注:服务端中传递向客户端的自定义实体类, 需要实现Serializable序列化接口
    package cn.rodge.domain;
    import java.io.Serializable;
    public class User implements Serializable {
        private static final long serialVersionUID = 1L;
        private String id;
        private String username;
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        @Override
        public String toString() {
            return "User [id=" + id + ", username=" + username + "]";
        }
        public User(String id, String username) {
            super();
            this.id = id;
            this.username = username;
        }
        public User() {
            super();
        }
    }


  • 相关阅读:
    jsp与spring mvc后台controller间参数传递处理之总结
    又一个无效的列类型错误Error setting null for parameter #7 with JdbcType NULL . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLExcept
    SSM文件上传要点总结
    关于SSM中mybatis向oracle添加语句采用序列自增的问题
    oracle和mysql的一些区别
    mapper.xml实现oracle的分页语句
    2.数组的解构赋值
    3.Vue 实例
    2.Vue.js 是什么
    1. vue 的安装
  • 原文地址:https://www.cnblogs.com/rodge-run/p/6492877.html
Copyright © 2011-2022 走看看