Frage

Was ist ein guter Weg, um Daten von einem Java-Prozess im Browser erzeugt zu machen?

Ich habe umfangreiche Verwendung von JSP und die verschiedenen zugehörigen Frameworks gemacht ( JSTL Struts , Tapestry , usw.), sowie umfassendere Rahmenbedingungen nicht im Zusammenhang mit JSP ( GWT , Openlaszlo ). Keine der Lösungen immer ganz zufriedenstellend war - in den meisten Fällen der Rahmen ist zu erzwungener oder zu komplex für meine Bedürfnisse, während andere umfangreiche Refactoring bestehenden Code erfordern würde. Darüber hinaus scheinen die meisten Frameworks Performance-Probleme zu haben.

Zur Zeit lehnte ich zur Lösung mein Java Daten über ein einfaches Servlet des Aussetzens, die JSON zurückgibt, und dann die Daten Rendering PHP oder Ruby verwenden. Dies hat den zusätzlichen Vorteil, sofort meinen Dienst als Web-Service als auch auszusetzen, aber ich frage mich, wenn ich hier das Rad neu zu erfinden bin.

War es hilfreich?

Lösung

Ich persönlich benutze Tapestry 5 für Web-Seiten mit Java erstellen, aber ich stimme zu, dass es manchmal sein ein bisschen übertrieben. Ich würde schauen in mit JAX-RS ( java.net Projekt , jsr311 ) es ist ziemlich einfach zu bedienen, es unterstützt Rangier- und unmarshalling Objekte zu / von XML aus der Box . Es ist möglich, sie zu erweitern zu unterstützen JSON über Jettison .

Es gibt zwei Implementierungen, die ich versucht habe:

  • Jersey -. Die Referenzimplementierung für JAX-RS
  • Resteasy - die Umsetzung ziehe ich, eine gute Unterstützung für Rangier- und unmarshalling eine breite Palette von Formate. Auch ziemlich stabil und verfügt über mehr Features, die Jersey.

Werfen Sie einen Blick auf den folgenden Code ein Gefühl dafür zu bekommen, was JAX-RS für Sie tun können:

@Path("/")
class TestClass {
    @GET
    @Path("text")
    @Produces("text/plain")
    String getText() {
        return "String value";
    }
}

Diese kleine Klasse wird mich an der Wurzel des Servers (@Path von der Klasse) aussetzen, dann den getText () -Methode auf dem Text URI / aussetzen und über HTTP-GET-Zugriff darauf ermöglichen. Die @Produces Anmerkung erzählt den JAX-RS Rahmen zu versuchen, das Ergebnis des Verfahrens in Klartext zu machen.

Der einfachste Weg, um zu erfahren, was mit JAX-RS möglich ist, ist das zu lesen Spezifikation .

Andere Tipps

Wir verwenden Stripes . Es gibt Ihnen mehr Struktur als gerade Servlets, aber es lässt Sie Ihre Urls durch eine @UrlBinding Anmerkung steuern. Wir verwenden es, xml und json an den Browser für Ajax-Sachen zurück zu streamen.

Sie könnten leicht verbrauchen sie mit einer anderen Technologie, wenn Sie diesen Weg gehen wollte, aber man kann wirklich genießen mit Streifen zu entwickeln.

Schauen Sie sich Restlet für einen guten Rahmen für Ihre Domain-Modell als REST-Dienste (einschließlich JSON und triviale XML-Ausgabe) das Aussetzen .

Für Ihre Info-Rendering, vielleicht können Sie GWT verwenden auf der Client-Seite und verbrauchen Dienste Ihre Daten? Wenn GWT schwimmt nicht Ihr Boot, dann vielleicht JQuery würde?

Vielleicht könnten Sie die Daten als XML generieren und machen es mit Hilfe von XSLT?

Ich bin nicht sicher, PHP oder Ruby ist die Antwort, wenn Java nicht schnell genug für Sie ist!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top