目前直接用http传递序列化的java对象,效果还可以 下面是我的实现过程 服务器端程序主要代码 TaskListenerServlet.java
代码
- public void init() throws ServletException {
- TimerTask myTask = new MyTimerTask();
- myTimer = new Timer();
- long startMin=60;
- long intervalMin=60;
- myTimer.schedule(myTask, startMin*1000, intervalMin*1000);
- }
MyTimerTask类里的run()方法主要代码
代码
- try {
-
- URL url = new URL(idcServletAddress);
- URLConnection uc = url.openConnection();
- uc.setDoOutput(true);
- uc.setDoInput(true);
- uc.setUseCaches(false);
- uc.setRequestProperty("Content-type", "application/octet-stream");
- ObjectOutputStream requestout = new ObjectOutputStream(uc.getOutputStream());
-
- IDCInfoBean idcbean = new IDCInfoBean();
- idcbean.setIdc(idc);
- requestout.writeObject(idcbean);
- requestout.flush();
- requestout.close();
-
- ObjectInputStream responsein = new ObjectInputStream(uc.getInputStream());
-
- TransProgramList tpl= (TransProgramList) responsein.readObject();
-
- CollectTaskService.executeTask(idc , tpl);
- responsein.close();
- }catch (Exception e) {
- throw e;
- }
客户端servlet程序主要代码
代码
- public void service(ServletRequest request, ServletResponse response) throws
- ServletException, IOException {
-
- ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());
-
- ObjectInputStream in = new ObjectInputStream(request.getInputStream());
- IDCInfoBean idcBean=new IDCInfoBean();
-
- try {
- idcBean=(IDCInfoBean)in.readObject();
- }catch (Exception e ){
- System.out.println(e.toString());
-
- }
- String idc = idcBean.getIdc();
-
- List programList =CollectService.collectProgram(idc) ;
- List multiList =CollectService.collectMultiProgram(idc) ;
-
- TransProgramList tpl = new TransProgramList();
- tpl.setProgramList(programList);
- tpl.setMultiList(multiList);
-
- out.writeObject(tpl);
- }
|