Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI(Remote Method Invocation,远程方法调用)
Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI(Remote Method Invocation,远程方法调用)的功能。采用的是二进制RPC(Remote Procedure Call Protocol,远程过程调用协议)协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
在进行基于Hessian的项目开发时,应当注意以下几点:
▲JAVA服务器端必须具备以下几点:
·包含Hessian的jar包。
·设计一个接口,用来给客户端调用。
·实现该接口的功能。
·配置web.xml,配好相应的servlet。
·对象必须实现Serializable 接口。
·对于复杂对像可以使用Map的方法传递。
▲客户端必须具备以下几点:
·java客户端包含Hessian.jar的包。
·具有和服务器端结构一样的接口。
·利用HessianProxyFactory调用远程接口。
下面是一个hessian的简单例子
场景1:服务端 客户端都不使用spring
Java服务器端:
环境:j2sdk1.4.2、Tomcat6.0
依赖的包:hessian-3.1.6.jar
新建一个名为HessianServer的web project。将hessian-3.2.0.jar放入WEB-INF/lib文件夹中。
创建接口
1) 如果客户端不使用spring,客户端代码如下import java.net.MalformedURLException;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.caucho.hessian.client.HessianProxyFactory;import com.mooing.hessian.DemoApi;public class ClientSpring { public static void main(String[] args) throws MalformedURLException, ClassNotFoundException { // String url = "http://localhost:8080/jms1/remote/helloDemo"; // HessianProxyFactory pf = new HessianProxyFactory(); // DemoApi da = (DemoApi) pf.create(url); // da.setName("test"); // System.out.println(da.sayHello()); // System.out.println(da.getUser()); ApplicationContext context = new ClassPathXmlApplicationContext("remote-hessian.xml"); DemoApi da = (DemoApi) context.getBean("helloDemo"); da.setName("test spring"); System.out.println(da.sayHello()); System.out.println(da.getUser()); }}