Ist es möglich, JAX-RS als Web-Framework zu verwenden?

8

Ich habe mich in letzter Zeit mit JAX-RS beschäftigt, weil mir die Java-Plattform und eine REST-konforme Webentwicklung sehr gut gefallen. Ich habe viel über die Verwendung von JAX-RS zum Erstellen von RESTful Web Services gelesen, aber ist es möglich JAX-RS zu verwenden, um RESTful Websites zu erstellen? Ich denke genauer gesagt, ist es möglich, JAX-RS als Controller zu verwenden (um benötigte Daten vom Server abzurufen) und dann die Kontrolle an eine View-Engine weiterzuleiten, um das passende HTML zu rendern?

Ich habe gegoogelt, aber keine Ressourcen gefunden, die dir zeigen, wie das geht.

Danke für jede Einsicht / Hilfe.

    
Brian DiCasa 14.07.2010, 00:19
quelle

3 Antworten

6

Ich denke, Sie haben Schwierigkeiten mit Ihren Google-Suchen, weil nicht viele Leute das tun. JAX-RS wurde für Web-Services entwickelt, daher denken Entwickler nicht daran, es als Controller für Web-Anwendungen zu verwenden. Es gibt jedoch keinen Grund, warum es nicht funktionieren würde.

Sehen Sie sich diesen Blogbeitrag an: JAX-RS als das einzige Java-Web-Framework, um sie alle zu beherrschen?

Ich denke, es ist genau die Art von Dingen, die Sie suchen.

    
dbyrne 14.07.2010, 01:08
quelle
3

Wenn Sie wirklich nur JAX-RS für Ihr Web-Framework verwenden möchten, könnte Jersey die beste Wahl sein. Denken Sie daran, dass die Funktionen, die Sie daraus erhalten, minimal sein werden, und Sie werden offensichtlich nicht alle Schnickschnack bekommen, wie es von JSF, Wicket, etc. zur Verfügung gestellt wird.

Wenn Sie wissen, dass Ihre Webanwendung auf Spring angewiesen ist, sollten Sie vielleicht Spring MVC 3.0 verwenden. Es bietet erholsame Web-Dienste-ähnliche und es gibt Ihnen bessere Funktionen, so dass Sie nicht die meisten von ihnen selbst implementieren müssen. Zugegeben, Spring MVC 3.0 ist keine Implementierung von JAX-RS und basierend auf dem, was der Spring-Entwickler gesagt hat, scheint es, dass Spring MVC nie eine Implementierung von JAX-RS sein wird, da es bereits einige stabile Implementierungen gibt. Die Syntax ist meiner Meinung nach ziemlich ähnlich, oder zumindest konnte ich sie ziemlich schnell verstehen, obwohl ich Jersey schon seit einiger Zeit benutze.

    
limc 14.07.2010 15:15
quelle
3

dbyrne hat recht, dass fast niemand das macht. Es ist üblicher, JAX-RS zu verwenden, um Informationen in JSON oder XML zu speichern. Dann schminken Sie den Webbrowser mit einem RIA-Framework (z. B. Ext JS ), das die Manipulation des DOM und das Injizieren von Daten übernimmt wie es in JSON / XML-Form abgerufen wird. Dieser Ansatz ist stark. Sie können mehrere, möglicherweise nicht browserbasierte Clients für den Dienst schreiben, die alle das gleiche JSON / XML analysieren. Sie können "One-Page" -Webapps schreiben, wo der gesamte Informationsaustausch über AJAX nach dem ersten Seitenladen erfolgt. Ich fordere Sie auf, seine Stärken und Schwächen im Zusammenhang mit Ihrem speziellen Problem zu untersuchen und zu prüfen.

Zurück zu Ihrer Frage: Die Antwort ist "irgendwie". Diese Funktionalität wird nicht direkt von der JAX-RS-Spezifikation (ab 1.1) bereitgestellt. Allerdings ist in der JAX-RS-Referenzimplementierung, Jersey , über das Viewable -Antwortobjekt. Sehen Sie sich diesen Blogeintrag an, wenn Sie weitere Nachforschungen anstellen möchten: Ссылка . Ich möchte darauf hinweisen, dass ich keine Erfahrung mit dieser Seite von Jersey habe. Es war angenehm, XML / JSON-wiederkehrende Webdienste mit Jersey zu schreiben, aber ich kann nicht mit diesem serverseitigen HTML-Vorlagengeschäft sprechen.

Bearbeiten : dbyrne hat seine Antwort bearbeitet, um einen Blog-Post hinzuzufügen, der auf den oben erwähnten verweist. Ich denke, wir haben beide ungefähr die gleiche Antwort gefunden.

    
Dan LaRocque 14.07.2010 01:31
quelle

Tags und Links