读书人

一个容易的hession实例

发布时间: 2012-09-06 10:37:01 作者: rapoo

一个简单的hession实例

?

由于本人刚开始接触hession,还未深入的了解hession,所以一下的代码没有注释。

?

?

使用工具 : eclipse 3.3?? tomcat 6.0.21?? JDK 1.6

jar包:hessian-4.0.7.jar(见附件)

?

1、在 eclipse 中新建一个 Dynamic Web Project,名为 hession

2、在src下建包:com.hession

3、创建的代码如下:

?

hello:hello,world![Car:{name=HAHACHE,color=RED红色,length=2400}]
?

?

?

1 楼 xurichusheng 2011-11-03 IBasic basic = (IBasic)f.create(IBasic.class, url);
Car car = basic.getCar();
System.out.println("hello:"+basic.hello());

为什么我们这里 create 的是 接口 IBasic,但是运行结果说明是调用实现类BasicService呢?
通过查看 com.caucho.hessian.server.HessianServlet 中的init(ServletConfig config)源码,我们发现:
1、首先取得web.xml中配置的home-class和home-api所对应的类、接口
if(getInitParameter("home-class") != null)
{
String className = getInitParameter("home-class");
Class homeClass = loadClass(className);
_homeImpl = homeClass.newInstance();
init(_homeImpl);
}

if(getInitParameter("home-api") != null)
{
String className = getInitParameter("home-api");
_homeAPI = loadClass(className);
}

2、将实现类和接口的对应关系作映射
if(_homeImpl != null)
{
_homeAPI = findRemoteAPI(_homeImpl.getClass());
if(_homeAPI == null)
_homeAPI = _homeImpl.getClass();
}

读书人网 >互联网

热点推荐