2009-04-19 9 views
6

Ich suche nach einem besten Weg, der für Java-Entwickler zur Verfügung steht, um REST-Dienste zu implementieren, die über JSON oder XML kommunizieren werden. Ich suche nach produktionsfertigen Produkten.Was ist die beste Java-Methode zum Erstellen von JSON/XML-REST-Webdiensten, die WCF ähnelt?

Ich weiß, dass Frühling 3.0 kommt, aber es ist noch nicht fertig - kein Glück.

Ist Jersey der eine?

Meine Anwendung wird von Tomcat gehostet, verwendet Spring, Jettison und XStream.

Ich möchte ein Open-Source-Paket verwenden, das mir eine ähnliche Entwicklungserfahrung wie WCF.NET ermöglicht, wo ich die Url-Vorlagen deklarieren, GET/POST zuordnen und eine Ausgabe entweder in XML oder JSON. Die akzeptierte Nutzlast sollte ebenfalls XML oder JSON sein.

Irgendwelche Ideen da draußen?

Antwort

3

Jersey, RestEasy und Restlet behaupten, alles zu tun, was Sie verlangen. Ich habe nur Restlet ausprobiert, und ich fand es ziemlich eklig.

Spring 3 hat die endgültige Version noch nicht erreicht, aber der M2-Build scheint ziemlich solide zu sein und hat die REST-Sachen dort. Wenn ich eine neue REST-Webanwendung erstellen würde, würde ich wahrscheinlich das Risiko mit M2 eingehen.

+0

Was ist Ihrer Meinung nach der Zeitrahmen für die Veröffentlichung von Spring 3.0? – IgorM

+0

M3 wurde letzten Monat fällig, ist aber noch nicht erschienen. RC1 ist im Juni fällig, denke ich, also hoffentlich finale Version 3.0 wird Q3 in diesem Jahr sein. – skaffman

0

Ja, Jersey ist ziemlich gut und basierend auf Ihrer Beschreibung würde genau das tun, was Sie wollen.

Ich würde nicht auf Spring-WS-Sache warten - Jersey ist gut, und ich weiß nicht, welche Vorteile gibt es zu Frühlingsalternative, jenseits "Frühlingsmarke". Für mich ist JAX-RS (das sind Jersey-Werkzeuge) ein sehr gutes Beispiel für die Auswahl und Verwendung der besten Komponenten, die offene APIs implementieren; Jersey läuft unter anderem auf einem beliebigen Servlet-Container, kann die besten XML/JSON/etc-Parser verwenden, eine Pluggable-Validierung (Bean-Validierungs-API) und so weiter. Gleiches sollte auch für andere JAX-RS-Implementierungen gelten (wie Resteasy).

0

Ich habe einige Patches für CXF verwendet und festgeschrieben. Es unterstützt JAX-RS und ist voll konfigurierbar mit Feder. Es gibt ein gutes Tutorial hier:

http://cwiki.apache.org/CXF20DOC/jax-rs.html

CXF ein Apache-Projekt ist und wie JAX-RS ist ein Standard, den Sie keine Probleme haben, sollten sich von ihm weg, wenn Sie irgendwelche Schwierigkeiten haben.

Hoffe, das hilft.

2

Ich versuchte mit Restlet, RestEasy, Jersey, CXF, Frühling. Hier sind meine Bewertungen:

  1. Restlet: Art von böse mit seinen eigenen Anmerkungen. Und auch etwas verwirrend. Kann aber nicht viel Vorwürfe machen, als sie damit begannen, dies zu implementieren, noch bevor JAX-RS da war.

  2. RestEasy/Jersey/CXF: So einfach wie sein Name ist. Einfach und unkompliziert, um daran zu arbeiten. Ein guter Teil für diese 3 Rahmen ist, dass, da sie mit JAX-RS konform sind, jederzeit in Zukunft schnell auf andere JAX-RS konforme Rahmenwerke zurückgreifen können, wenn sie besser oder besser auf Ihre Bedürfnisse ausgerichtet sind.

  3. Spring 3 hat begonnen, REST-APIs zu unterstützen. Aber machen Sie es nicht, dass es NICHT JAX-RS-konform ist, genau aus dem Grund, dass es für Restlet ist.

    Also würde ich nur aus RestEasy/Jersey/CXF wählen.