hessian和web项目的集成使用

   
    Hessian是一个使用二进制Web服务协议的框架,它的好处在于免除了一大堆附加的API包。

    一、hessian在web项目中的服务端应用。
    1、在web.xml中:
 <servlet>
		<servlet-name>Hessian</servlet-name>
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>
				classpath:spring-hessian.xml
			</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>Hessian</servlet-name>
		<url-pattern>/hessian/*</url-pattern>
	</servlet-mapping>

    2、spring-hissian.xml配置
<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  
<beans>  
    <description>server properties</description>  
    <bean id="_facadeService" class="com.xxx.hessian.FacadeServiceImpl">      	
    </bean>  
    <bean id="facadeService" name="/facadeService" class="org.springframework.remoting.caucho.HessianServiceExporter">  
       <property name="service">  
           <ref bean="_facadeService"/>  
       </property>  
       <property name="serviceInterface">  
           <value>com.xxx.hessian.client.FacadeService</value>  
       </property>  
    </bean>  
</beans>  


以上,hessian的服务器端配置完成。具体的实现写上对应的接口和实现类的代码即可。

    二、hessian在客户端的调用。
    1、将服务端编写的接口(不包含实现)和相应的POJO类打包,并引入客户端项目中。
    2、在spring中初始化bean,然后调用。具体如下:
<bean id="facadeService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">  
        <property name="proxyFactory">  
            <bean class="com.caucho.hessian.client.HessianProxyFactory">  
                <property name="readTimeout" value="${hessian.readTimeout}" />  
            </bean>  
        </property>  
        <property name="serviceUrl" value="${hessian.hessianUrl}/facadeService" />  
        <property name="serviceInterface" value="com.xxx.hessian.client.FacadeService" />  
        <property name="overloadEnabled" value="true" />
    </bean>

    3、在要调用hessian服务的类中注入这个bean。然后就可以像调用本地方法一样调用了。


猜你喜欢

转载自clojure.iteye.com/blog/1607723