代码之家  ›  专栏  ›  技术社区  ›  wmitchell

远程Servlet通信

  •  0
  • wmitchell  · 技术社区  · 16 年前

    我有两个仆人A&B 在B上,我打算有一个方法isAvailable(),a将调用该方法来检查状态。如果这个方法返回true,那么我将把一个对象传递给B。

    你们觉得怎么样?还有其他选择吗?

    4 回复  |  直到 16 年前
        1
  •  0
  •   Brian Agnew    16 年前

    为什么不利用您的基础架构已经在使用HTTP这一事实呢?

    因此servlet A可以在特定路径上执行HTTP GET来检查状态(或者发回一个对象,或者检查HTTP响应代码——然而,后一种方法似乎误用了状态代码),并在需要时放置/发布一个对象。我注意到您正在跨多个主机运行,这将在您的场景中起作用。

    这些对象可以使用标准Java进行序列化,或者通过XML等表示形式进行序列化——也许可以使用 XStream ).

    在我看来,这是一种利用现有基础设施的非常简单的方法。

        2
  •  0
  •   oxbow_lakes    16 年前

    Spring 将B注入A中,以便可以直接调用该方法。

    即使servlet在不同的容器中运行,您也可以将它们公开(再次使用Spring)为 Remote 对象,并类似地将B注入A(除了这意味着Spring容器将为远程对象注入代理)。这在您的代码中没有占用空间(也就是说,它都是由配置文件定义的,Spring为您处理所有事情)

        3
  •  0
  •   mjn anonym    16 年前

    Servlet B中的isAvailable()方法似乎访问存储在Servlet中的某种“全局”数据。能否将此对象提取到一个单独的单例中,然后该单例可用于两个servlet?

        4
  •  0
  •   BalusC    16 年前

    你可以用 java.net.URLConnection here 一个简单的教程。

    让A向B发出一个HTTP请求,在B中有一个servlet,该servlet监听这些请求并相应地返回响应。这可能是一个简单的问题 response.getWriter().write("ok"); ...左右您甚至可以返回XML字符串等等。在A中,您可以从 InputStream URLConnection