一、简介
Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
二、下载
下载Hessian的JAR包,地址: http://hessian.caucho.com/
三、引入JAR包、代码事例
定义一个接口和实体类(包括传入参数数据格式和返回数据格式)
接口IEventService.java
import java.util.List;
import com.fangtoon.activity.form.EventForm;
import com.fangtoon.activity.pojo.Event;
public interface IEventService {
/**
*创建事件
*/
public EventForm createEvent(Event vo);
}
还有以下JavaBean类用来返回和传入参数用的,像Event类和EventForm类,这里就不再写出来。
以上的接口和返回和传入参数的实体Bean类在Hessian的服务端和客户端都需要引入。先来看看服务端我们需要做什么,首先实现上面的接口,代码如下:
public class EventServiceImp implements IEventService {
@Override
public EventForm createEvent(Event vo) {
EventForm form = new EventForm();
//要实行的业务逻辑
return form;
}
}
写入spring 配置
<bean id="eventService" class="com.fangtoon.activity.event.impl.EventServiceImp">
</bean>
配置web.mxl
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:remotingServletContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
配置remotingServletContext.xml
<bean name="/eventServiceCall" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="eventService"/>
<property name="serviceInterface" value="com.fangtoon.activity.event.inter.IEventService"/>
</bean>
其中ref中的eventService是上面Spring配置里面的bean
自此Hessian服务端的代码就完备了,下面来看看客户端需要实现什么:
首先将以上的接口和返回和传入参数的实体Bean类还有Hessian的jar包引入到客户端,配置hessainContent.xml文件
<!-- Hessian远程调用配置 -->
<bean id="eventService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl" value="http://rpc.activity.sqtoon.com/remoting/eventServiceCall"/>
<property name="serviceInterface" value="com.fangtoon.activity.event.inter.IEventService"/>
</bean>
其他的直接在Action里面依赖注入就行。