2011-01-06 7 views
6

Je veux juste mettre en œuvre un service en java qui:Mise en œuvre du service Web

  • prendre quelques arguments, puis recherchez la base de données

  • retour l'objet JSON des données extraites

J'ai besoin d'aide pour identifier les moyens par lesquels je peux mettre en œuvre cette chose.

par exemple. Supposons que je reçoive le nom du livre comme argument que je veux rendre.

Sur la partie service, je dois récupérer les données du livre et les convertir en JSON et écrire/retourner à la réponse.

Je regardais le Apache Axis2 mais je ne suis pas sûr que je vais dans la bonne direction.

Donc, l'aide de pls.

Besoin de directives pas de mise en œuvre.

Merci

Répondre

7

Je suggère d'utiliser des services basés sur JAX-RS, ce qui serait idéal pour votre scénario, car vous voulez des données json. Ce sont assez faciles à démarrer. Jersey est un cadre largement utilisé. Voir aussi RESTEasy.

+0

+1 pour le service web REST. Vous pouvez également jeter un oeil à Apache Wink, ou Spring MVC (au cas où vous utilisez le printemps) – Tarlog

+0

Merci vivek pour votre suggestion. Cependant, je n'ai aucune connaissance de WS mais je vais regarder dans les deux. –

+0

J'utilise Jersey pour des cas d'utilisation très similaires depuis 3 ans avec beaucoup de succès. Le guide de démarrage sur le site des maillots est très utile. La meilleure partie de Jersey est que vous obtenez des sorties XML et JSON gratuitement sans travail supplémentaire. La seule suggestion que je voudrais faire est de regarder dans la notation naturelle JSON si vous ne serez pas les données unmarshalling car il est le plus proche de JSON de base que possible, la question est que JSON ne supporte pas les espaces de noms ainsi afin de désorganiser une notation cartographié est utilisé par défaut. – LINEMAN78

2

Si vous retournez les données en JSON alors vous n'avez probablement pas besoin de mettre en œuvre un service Web complet, qui utilise XML tant pour la demande et la réponse.

Une application Web dynamique normale (écrite sous la forme d'une servlet Java) sera capable de lire les paramètres de requête dans la charge HTTP et de renvoyer une réponse HTTP codée JSON.

Cependant, vous devez considérer vos clients; s'ils ne peuvent accéder qu'aux services Web, vous devez oublier une réponse JSON et simplement objectiver la réponse. Cependant, si les clients peuvent accéder aux ressources Web sans problème, optez pour l'approche servlet.

Si vous devez utiliser les services Web, consultez le Metro 2 framework.

0

Axis2 peut gérer/soutenir la webservice partie liée, IAW, transformant des objets java en JSON et vice-versa, et de fournir une API facile à utiliser pour la partie de la communication. Hibernate ou JPA peut être utile pour les tâches liées à la base de données, bien qu'il puisse être plus simple d'utiliser JDBC pour envoyer des commandes SQL simples à la base de données (surtout si la base de données existe déjà).

2

Une façon de le faire est de le garder basé sur des normes.

Si vous utilisez le cadre JEE5/6, votre meilleur pari serait d'aller avec JAX-WS - vient intégré avec le JSE aussi (si je me souviens bien)
Vous avez vraiment juste pour annoter un POJO avec @WebService pour y parvenir.

En ce qui concerne la création d'une réponse JSON, un bon pari est de coller avec la mise en œuvre de http://code.google.com/p/google-gson/; simple et directe