锁定老帖子 主题:两个系统之间的通讯问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-27
Ivan Li 写道 8000多条记录呢,http中get方法url的大小是有限制的,好像是128k,我觉得字符串的不可行
对象序列化后用http传送 |
|
返回顶楼 | |
发表时间:2006-10-27
我们这个项目有类似的应用
我们这个是中间用一个FTP中转 一边写文件 一边读文件 这个是客户定下的 |
|
返回顶楼 | |
发表时间:2006-10-27
数据放到memcache里面 通过webservice提供访问接口
|
|
返回顶楼 | |
发表时间:2006-10-28
直接用Hessian啊,几个POJO直接在HTTP上传过去,很简单
|
|
返回顶楼 | |
发表时间:2006-10-29
这样的业务是否该使用消息驱动POJO
|
|
返回顶楼 | |
发表时间:2006-10-29
目前直接用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 { // 设置网络输出流,idcServletAddress为客户端的servlet地址 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()); //发送给客户端的servlet 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); } |
|
返回顶楼 | |
发表时间:2006-10-29
1、对于问题3,比较简单,URL就可以搞定;
2、传递大数据量,用http传递序列化java对象,没有问题;当然你的客户端和服务器端都要是java实现; 3、计划任务可以使用Quartz来完成。 |
|
返回顶楼 | |
发表时间:2006-10-30
可以看看ICE
www.zeroc.com 不过,他使用的是双协议,这个可能得考虑。 |
|
返回顶楼 | |
发表时间:2006-11-01
通过http传送的类(序列化的类),除了属性和get,set方法,不能包含别的方法,
包含别的方法就出错,这个问题怎么解释? |
|
返回顶楼 | |
发表时间:2006-11-06
用一个中间数据表吧,最简单!!!!!不需要做啥修改
|
|
返回顶楼 | |