分享

两个系统之间的通讯问题-hasi -JavaEye技术社区

 达能牛牛 2007-03-12

目前直接用http传递序列化的java对象,效果还可以
下面是我的实现过程
服务器端程序主要代码
TaskListenerServlet.java

代码
  1. public void init() throws ServletException {   
  2.     TimerTask myTask = new MyTimerTask();   
  3.     myTimer = new Timer();   
  4.     long startMin=60;   
  5.     long intervalMin=60;   
  6.     myTimer.schedule(myTask, startMin*1000, intervalMin*1000);   
  7. }   

MyTimerTask类里的run()方法主要代码
代码
  1. try {   
  2.     // 设置网络输出流,idcServletAddress为客户端的servlet地址   
  3.     URL url = new URL(idcServletAddress);   
  4.     URLConnection uc = url.openConnection();   
  5.     uc.setDoOutput(true);   
  6.     uc.setDoInput(true);   
  7.     uc.setUseCaches(false);   
  8.     uc.setRequestProperty("Content-type""application/octet-stream");   
  9.     ObjectOutputStream requestout = new ObjectOutputStream(uc.getOutputStream());   
  10.     //发送给客户端的servlet   
  11.     IDCInfoBean idcbean = new IDCInfoBean();   
  12.     idcbean.setIdc(idc);   
  13.     requestout.writeObject(idcbean);   
  14.     requestout.flush();   
  15.     requestout.close();   
  16.     //获取返回的二进制对象流   
  17.     ObjectInputStream responsein = new ObjectInputStream(uc.getInputStream());   
  18.     //还原   
  19.     TransProgramList tpl=  (TransProgramList) responsein.readObject();   
  20.     //把数据保存到服务器端数据库里   
  21.     CollectTaskService.executeTask(idc , tpl);   
  22.     responsein.close();   
  23. }catch (Exception e) {   
  24.       throw e;   
  25. }   

 

客户端servlet程序主要代码

代码
  1. public void service(ServletRequest request, ServletResponse response) throws  
  2.     ServletException, IOException {   
  3.         //封装用于返回的对象输出流            
  4.     ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());        
  5.     //封装用于接收的对象输入流        
  6.     ObjectInputStream in = new ObjectInputStream(request.getInputStream());        
  7.     IDCInfoBean idcBean=new IDCInfoBean();        
  8.     //按指定类的格式读取对象输入流中的内容        
  9.     try {           
  10.         idcBean=(IDCInfoBean)in.readObject();            
  11.     }catch (Exception e ){   
  12.         System.out.println(e.toString());   
  13.         //   
  14.     }   
  15.     String idc = idcBean.getIdc();   
  16.     //得到客户端所有节目信息   
  17.     List programList =CollectService.collectProgram(idc) ;   
  18.     List multiList =CollectService.collectMultiProgram(idc) ;   
  19.     //把结果封装到序列化对象里   
  20.     TransProgramList tpl = new TransProgramList();   
  21.     tpl.setProgramList(programList);   
  22.     tpl.setMultiList(multiList);   
  23.     //发送对象   
  24.     out.writeObject(tpl);       
  25. }       

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多