读书人

hession容易模拟

发布时间: 2012-08-28 12:37:01 作者: rapoo

hession简单模拟
闲来无事,自己手动写写代码,如有错误不必深究,哈哈……

hession的实现:
1、业务接口
2、业务实现,继承HessianServlet
3、服务端配置HessianServlet
4、客户端调用利用HessianProxyFactory的create方法根据接口创建代理类

我的简单实现:
1、业务接口
2、业务实现类,类中方法最好抛出个Exception,方便客户端接受异常信息
3、服务端配置实现了自己的业务逻辑的servlet,继承自AbstractServiceSrv
4、客户端调用利用ProxyFactory的create方法根据接口创建代理类
5、简单的单点登录

简单模拟hession代理类:




测试用例:
/* * @(#)ProxyTest.java * Copyright (c) 2011 TravelSky Technology Ltd. All Right Reserved.  */package com.test;import java.net.SocketTimeoutException;import junit.framework.TestCase;import com.common.handler.ProxyFactory;import com.dao.UserManager;import com.model.User;/** * @author yangxu * @email yangxu_email@163.com * @QQ 435214753 */public class ProxyTest extends TestCase{/** * @param args */public void TestLogin(){String serviceURL = "http://localhost:8090/CallServerHandler/serverContext.srv";ProxyFactory factory = new ProxyFactory();factory.setConnectTimeout(1000);factory.setReadTimeout(1000);factory.setLogin(true);UserManager mgr = (UserManager)factory.create(UserManager.class,serviceURL);try {User user = mgr.login("yangxu", "myPassword");System.out.println("SessionId:"+factory.getSessionId());}catch(SocketTimeoutException e){System.out.println("==========="+e.getMessage()+"===========");e.printStackTrace();}catch (Exception e) {System.out.println("==========="+e.getMessage()+"===========");e.printStackTrace();}}public void TestNormal(){String serviceURL = "http://localhost:8090/CallServerHandler/serverContext.srv";ProxyFactory factory = new ProxyFactory();factory.setConnectTimeout(1000);factory.setReadTimeout(1000);//将第一个测试用例打印出的sessionId拷贝至此处factory.setSessionId("JSESSIONID=1AA028B88FD00BED43CD95DDDB5CA451; Path=/CallServerHandler");UserManager mgr = (UserManager)factory.create(UserManager.class,serviceURL);User user = null;try {user = (User)mgr.findUserById("asdsa");}catch(SocketTimeoutException e){System.out.println("==========="+e.getMessage()+"===========");e.printStackTrace();}catch (Exception e) {System.out.println("==========="+e.getMessage()+"===========");e.printStackTrace();}System.out.println(user.getName()+""+user.getPassword());}}

读书人网 >编程

热点推荐