2011-01-06 12 views
6

Ich möchte nur einen Dienst in Java implementieren, wird:Implementierung von Web-Service-

  • einige Argumente, suchen Sie dann die Datenbank

  • Rückkehr des JSON-Objekt der abgerufenen Daten

Ich brauche Hilfe, um die Wege zu identifizieren, durch die ich dieses Ding implementieren kann.

z.B. Angenommen, ich bekomme den Namen des Buches als Argument, das ich rendern möchte.

Im Serviceteil muss ich Buchdaten abrufen und in JSON konvertieren und schreiben/zurück zur Antwort.

Ich schaute auf die Apache Axis2, aber ich bin mir nicht sicher, ob ich in die richtige Richtung gehe.

Also, bitte helfen.

Brauchen Richtlinien nicht Implementierung.

Dank

Antwort

7

Ich würde vorschlagen, JAX-RS-basierte Dienste zu verwenden, die ideal für Ihr Szenario sind, wie Sie JSON-Daten möchten. Diese sind ziemlich einfach zu beginnen. Jersey ist ein weit verbreitetes Framework. Siehe auch RESTEasy.

+0

+1 für REST-Web-Service. Sie können auch einen Blick auf Apache Wink oder Spring MVC werfen (falls Sie Spring verwenden) – Tarlog

+0

Danke Vivek für Ihren Vorschlag. Trotzdem habe ich kein Wissen über WS, aber ich werde beide untersuchen. –

+0

Ich habe Jersey für sehr ähnliche Anwendungsfälle für die letzten 3 Jahre mit großem Erfolg verwendet. Der Erste-Schritte-Guide in der Trikots-Website ist sehr hilfreich. Das Beste an Jersey ist, dass Sie sowohl XML- als auch JSON-Ausgabe kostenlos und ohne zusätzliche Arbeit erhalten. Der einzige Vorschlag, den ich machen würde, ist, in die natürliche JSON-Notation zu schauen, wenn man Daten nicht entmarshaliert, weil sie JSON so nahe wie möglich ist. Das Problem ist, dass Json Namespaces nicht unterstützt, um eine gemappte Notation zu entpacken wird standardmäßig verwendet. – LINEMAN78

2

Wenn Sie die Daten in JSON zurückkommen, dann müssen Sie wahrscheinlich nicht über einen vollständigen Web-Service, der XML sowohl für die Anfrage und die Antwort verwendet implementieren.

Eine normale dynamische Webanwendung (als Java-Servlet geschrieben) kann Anforderungsparameter in der HTTP-Nutzlast lesen und eine JSON-codierte HTTP-Antwort zurückgeben.

Allerdings müssen Sie Ihre Kunden berücksichtigen; Wenn sie nur auf Webdienste zugreifen können, müssen Sie eine JSON-Antwort vergessen und die Antwort einfach objektivieren. Wenn die Clients jedoch ohne Probleme auf Webressourcen zugreifen können, verwenden Sie den Servlet-Ansatz.

Wenn Sie mit Webdiensten gehen müssen, dann schauen Sie sich die Metro 2 framework an.

0

Axis2 verarbeiten kann/unterstützen die webservice bezogenen Teil, IAW, Java-Objekte in JSON und umgekehrt umzuwandeln, und eine leicht zu bedienende API für den Kommunikationsteil bereitstellt.

Hibernate oder JPA könnten für datenbankbezogene Tasks nützlich sein, obwohl es möglicherweise einfacher ist, einfach JDBC zu verwenden, um einige einfache SQL-Befehle an die Datenbank zu senden (besonders wenn die Datenbank bereits existiert).

2

Eine Möglichkeit, dies zu tun, ist, es auf Standards basierend zu halten.

Wenn Sie den JEE5/6 Framework verwenden, ist Ihre beste Wette wäre mit JAX-WS zu gehen - kommt auch mit der JSE eingebaut (wenn ich mich richtig erinnere)
Sie wirklich nur ein POJO mit @WebService mit Anmerkungen versehen haben um das zu erreichen.

In Bezug auf das Erstellen einer JSON-Antwort ist es ratsam, bei der Implementierung von http://code.google.com/p/google-gson/ zu bleiben; einfach und unkompliziert