日期:2014-05-20  浏览次数:20748 次

两个系统之间用URL方式互相调用,这样实现?
最近遇到这样一个问题,现在的项目要和另外一个项目整合出一个共同点,做成一个小的系统,通过URL方式调用现在系统的方法实现查询一些数据的功能 ,现有系统用struts1做的,我想这样实现:在action中写一个方法,然后通知外部调用者通过一个URL带参数访问我的Action,我给他返回一个xml格式的字符串,可是我现在有点想不明白,如果这样的话 我在action中就要用输出流来写xml 那我的actionmapping要forward到哪里去呢?或者是这个action直接return null;

有类似经验的朋友帮我解答一下,谢谢!

今天加班了,呵呵,也祝和我一块加班的朋友加班快乐~~休息的朋友,玩的快乐~~

补充一下:如果对方用ajax的方式调用 能实现么?也就是用ajax调用另外一个系统的action~~

------解决方案--------------------
比如A系统的action为 www.helloa.com/a.do B系统的action为 www.hellob.com/b.do

那么a请求b就直接将form提交到www.hellob.com/b.do b的action就直接向流里面写入xml, 然后return null,a接受到xml之后进行数据处理就好了


Java code

public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
      try {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        // 返回
    PrintWriter out = response.getWriter();
        out.println("xmlcontent");
    out.flush();
      } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
      } catch (IOException e) {
            e.printStackTrace();
      }
      return null;
}

------解决方案--------------------
补充: 客户用ajax调用也是可以实现的 另外也可以使用HTTPClient来发送请求和接受响应
------解决方案--------------------
拿到out对象后和在servlet里一样处理,只是最后return null;
你返回的是xml数据,用ajax调用没有问题