• 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();
        }
    }


  • 相关阅读:
    [转]iOS框架和服务
    [Tips]统计Xcode代码行数
    [转]10个迷惑新手的Cocoa,Objective-c开发难点和问题
    关于 MRC 开发中的一些细节
    关于HTTP状态码的说明
    关于 MRC下自动释放池 的嵌套使用的几个问题
    C语言综合运用-------------编写 < 通讯录 >
    FFT与游戏开发(二)
    FFT与游戏开发(一)
    FFT开坑
  • 原文地址:https://www.cnblogs.com/rodge-run/p/6492877.html
Copyright © 2020-2023  润新知