2010-09-06 17 views
0

J'ai développé un site web utilisant les rails 2.3.8, et un serveur IM utilisant openfire (java). Je veux partager certaines données entre eux, ou exactement rails en tant que fournisseur, openfire en tant que consommateur. Une façon possible est d'utiliser le service Web. Mais il semble que rails 2.x a désapprouvé le support SOAP par défaut, j'ai installé la gem activewebservice, mais il y a un manque de documents pour montrer comment l'utiliser. J'ai googlé un exemple sur le site d'IBM, mais il semble que quelque chose ne va pas dans ce guide. 2.3.8. Quelqu'un peut-il me donner un exemple? Je sais qu'il existe une autre façon de fournir le service Web utilise le service Web de type RESTful par défaut des rails, mais comment configurer le côté Java pour le prendre en charge?services web entre rails et j2se

Répondre

0

Rails prend en charge RESTful web-services OOTB, donc si vous avez développé votre application rails à l'aide d'un générateur d'échafaudage, votre application fournit déjà une API RESTful. Maintenant que votre serveur de messagerie instantanée est le consommateur, tout ce que vous avez à faire est de faire en sorte que votre serveur de messagerie instantanée appelle l'API RESTful fournie par l'application rails. Appeler l'API RESTful signifie envoyer des requêtes HTTP (GET/POST/PUT/DELETE) au serveur REST (Rails App). Donc tout ce que vous avez à faire est de connecter un code java au serveur openfire qui enverra les requêtes HTTP adhérant aux conventions REST et enverra/recevra des données dans un format de sérialisation approprié (XML/JSON/etc). Il existe un mécanisme de plugin dans openfire qui peut probablement vous aider à atteindre cet objectif.

En ce qui concerne les appels RESTful sont concernés, cela peut être réalisé dans l'une des méthodes suivantes:

  1. Utilisez une bibliothèque REST client fourni par les implémentations JAX-RS comme Jersey, Apache wink, etc.
  2. Utilisez n'importe quelle bibliothèque cliente HTTP pour envoyer/recevoir des requêtes/réponses HTTP et une bibliothèque XML/JSON/etc pour sérialiser/désérialiser les données.