一、什么是Hessian
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 HelloHessian {
public String hellword(String seyhello);
public List<Person> findPerson();
}
第三步:提供上面接口的实现类
public class HelloHeassianImpl implements HelloHessian{
@Override
public String hellword(String seyhello) {
System.out.println("hello,world");
return "hello"+seyhello;
}
@Override
public List<Person> findPerson() {
List<Person> list=new ArrayList<Person>();
list.add(new Person(1,"张三"));
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>seyhello.HelloHeassianImpl</param-value>
</init-param>
<init-param>
<param-name>home-api</param-name>
<param-value>seyhello.HelloHessian</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hessian</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
客户端开发:
第一步:创建一个客户端项目,并导入hessian的jar包
第二步:创建一个接口(和服务端接口对应)
public interface HelloHessian {
public String hellword(String seyhello);
public List<Object> findPerson();
}
第三步:使用hessian提供的方式创建代理对象调用服务
@Test
public void Test() throws Exception{
HessianProxyFactory factory=new HessianProxyFactory();
HelloHessian hello=(HelloHessian) factory.create(HelloHessian.class,"http://localhost:8081/Hession");
String hellword = hello.hellword("hello");
System.out.println(hellword);
List<Object> list= hello.findPerson();
System.out.println(list);
}
spring
服务端:
web.xml 配置
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>