Hessian使用
2009-12-21 20:16 Khotyn 阅读(993) 评论(0) 收藏 举报Hessian 使用
最近团队在等着新项目,整个团队都没有什么事情干,趁闲的时间看了下Hessian,发现Hessian果然是个简单易用的东西,但是Hessian的官方网站上对于Hessian的使用感觉写得很一般,本文就来介绍下Hessian的使用。
Simple Hessian
先来介绍下如何搭建一个简单的Hessian应用,先来看一下服务端的配置:要提供一个Hessian服务,只需要提供一个HessianServlet即可,也就是在web.xml需要配置一个HessianServlet,然后需要配置两个初始化值,分别是home-class:接口的实现;home-api:接口,具体的value就是类路径。 web.xml的配置如下:
web.xml<servlet-name>hello</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>home-class</param-name>
<param-value>com.khotyn.hessianServer.BasicAPIImpl</param-value>
</init-param>
<init-param>
<param-name>home-api</param-name>
<param-value>com.khotyn.hessianServer.BasicAPI</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
再来看下客户端的实现,客户端的话通过一个HessianProxyFactory获取服务接口,然后调用服务接口的方法访问具体的实现类的方法:
client2 HessianProxyFactory hessianProxyFactory = new HessianProxyFactory();
3
4 try {
5 BasicAPI basicAPI = (BasicAPI) hessianProxyFactory.create(BasicAPI.class,
6 "http://localhost:8080/hessianServer/remoting/hello");
7 System.out.println(basicAPI.hello());
8 } catch (MalformedURLException e) {
9 e.printStackTrace();
10 }
11 }
其中的URL地址("http://localhost:8080/hessianServer/remoting/hello")就是服务器端的Servlet配置的地址
Hessian In Spring
Spring对Hessian提供了良好的集成,通过Spring配置一个Hessian服务也是很简单的,还是先看下服务端是怎么配置的: 首先在web.xml为Hessian配置一个DispatcherServlet:
web.xml2 <servlet-name>remoting</servlet-name>
3 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
4 <load-on-startup>1</load-on-startup>
5 </servlet>
6
7 <servlet-mapping>
8 <servlet-name>remoting</servlet-name>
9 <url-pattern>/remoting/*</url-pattern>
10 </servlet-mapping>
然后在WEB-INF下配置一个remoting-servlet.xml:
代码2
3 <bean name="/basicAPI"
4 class="org.springframework.remoting.caucho.HessianServiceExporter">
5 <property name="service" ref="basicAPI"></property>
6 <property name="serviceInterface" value="com.khotyn.hessianServer.BasicAPI"></property>
7 </bean>
8
其中,id为"basicAPI"的Bean配置一个basicAPI的具体的实现,也就是你需要提供的具体的服务。
而name为"/basicAPI"的Bean则配置一个HessianServiceExporter去将服务暴露到外部系统去,里面有两个属性,其中一个是服务接口的具体的实现类,一个是服务接口
然后再去看下客户端的配置,客户端可以使用各种各样不同的配置,比如上面的那种简单的直接通过HessianProxyFactory去访问Hessian服务的,这里就讲下如何通过Spring去访问一个Hessian服务:
代码2 class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
3 <property name="serviceUrl"
4 value="http://localhost:8080/hessianSpringServer/remoting/basicAPI"></property>
5 <property name="serviceInterface" value="com.khotyn.hessianServer.BasicAPI"></property>
6 </bean>
这里面需要配置一个HessianProxyFactoryBean到Bean配置文件中去,里面需要提供两个属性,一个是服务接口的类路径,一个是URL,等等,有没有发现这两个属性刚好和我们刚才的通过HessianProxyFactory的时候调用的create方法里面的两个参数是基本上一致的,你是对的,事实上,HessianProxyFactoryBean就是HessianProxyFactory的封装

浙公网安备 33010602011771号