托管在不同tomcat服务器上的休息服务之间的通信

时间:2013-08-19 13:11:26

标签: java web-services rest tomcat jax-rs

我有一个场景,我在不同的Tomcat实例(不同的机器)上托管不同的java Rest服务。在tomcats上运行的这些项目没有任何UI。为简单起见,我们假设用户将直接在浏览器(或curl)中输入一些URL以利用这些服务。现在我需要这个服务能够与其他tomcat实例中可用的服务进行通信(调用函数) 例如。如果TomcatInstance1接到调用,并且所有这一切都充当了不同服务的“路由器”,我希望它能够为其他“服务”提供Rest调用,例如TomcatInstance2。这可能吗?。如果是这样,如何实现呢? (尝试在SO上搜索类似的问题,找不到任何问题)。是否有相同的在线参考?

PS:在同一个Tomcat实例中托管服务是违反我的要求的。

2 个答案:

答案 0 :(得分:3)

这是完全可能的。您可以使用(例如)Jersey-client(http://jersey.java.net/)来查询其他Tomcat实例中的其他RESTful Web服务。只需要定义端点的正确URI并根据公开的API查询它们并调用它(就像你是来自浏览器的客户端,或卷曲)。

请在此处查看使用Jersey-client执行此操作的一个很好的示例:http://www.mkyong.com/webservices/jax-rs/restful-java-client-with-jersey-client/

答案 1 :(得分:2)

我建议Spring Restful api(http://static.springsource.org/spring/docs/3.0.0.M3/reference/html/ch18s02.htmlhttp://www.mkyong.com/spring-mvc/spring-3-rest-hello-world-example/)。

正如@emgsilva提到的,你唯一需要做的就是在彼此之间指出正确的uris。

Spring restful api的美妙之处在于它使用起来很简单,你不需要处理任何序列化 - 反序列化。