一个简单的hession实例?由于本人刚开始接触hession,还未深入的了解hession,所以一下的代码没有注释。??使用
一个简单的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();
}