0

我使用 rails 2.3.8 开发了一个网站,并使用 openfire(java) 开发了一个 IM 服务器。我想在他们之间共享一些数据,或者确切地说,rails 作为提供者,openfire 作为消费者。一种可能的方法是使用网络服务。但是似乎 rails 2.x 已经弃用了默认的 SOAP 支持,我安装了 gem activewebservice,但是缺少说明如何使用它的文档。我在 IBM 的网站上搜索了一个示例,但在 rails 2.3.8 中遵循本指南似乎有问题。谁能给我一个例子?我知道提供 Web 服务的另一种方法是使用 rails 的默认 RESTful 类型的 Web 服务,但是如何配置 java 端来支持这个呢?

4

1 回答 1

0

Rails 支持 RESTful Web 服务 OOTB,因此如果您使用脚手架生成器开发 Rails 应用程序,那么您的应用程序已经提供了 RESTful API。现在,由于您的 IM 服务器是消费者,您所要做的就是让您的 IM 服务器调用 rails 应用程序提供的 RESTful API。

调用 RESTful API 意味着向 REST 服务器(Rails App)发送 HTTP(GET/POST/PUT/DELETE)请求。因此,您需要做的就是将一些 java 代码插入到 openfire 服务器,它将发送符合 REST 约定的 HTTP 请求并以合适的序列化格式(XML/JSON/等)发送/接收数据。openfire 中有一个插件机制,它可能可以帮助您实现这一目标。

就 RESTful 调用而言,这可以通过以下任何一种方法来实现:

  1. 使用由 JAX-RS 实现(如JerseyApache wink等)提供的 REST 客户端库。
  2. 使用任何 HTTP 客户端库来发送/接收 HTTP 请求/响应,并使用 XML/JSON/etc 库来序列化/反序列化数据。
于 2010-09-06T04:15:23.407 回答