jaxrs-api VS jsr311-VS api javax.ws.rs-api-VS-Trikot-core VS jaxrs-ri
Habe ich gegoogelt um ganz etwas bin immer noch verwirrt, was jede der oben genau meinst.
Hier ist mein Verständnis davon:
- jaxrs-api : enthält eine einzige api. Keine Umsetzung. Aber wie unterscheidet es sich von JSR311
- jsr311-api : JSR311 es ist eine Spezifikation, Anfrage. Das heißt, es soll ein Dokument. Warum ist es dann ein Glas?
- javax.ws.rs-api: Ist es eine Umsetzung?
- jersey-core(/jersey-client): Ist eine Implementierung von JSR311.
Ich heruntergeladen habe, jedes Glas und versuchte, Sie zu dekompilieren und sehen, was innen drin ist es, aber ich bin nur in der Lage zu finden, Schnittstellen, alle von Ihnen und nicht die Implementierung.
Ich bin mit diesen Fragen im Rahmen der doppelten Warnungen generiert maven-shade-plugin, und müssen das richtige Verständnis der oben, um herauszufinden, welche ausgeschlossen wird und warum.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werde ich zunächst auf die Frage
Außer der letzten (
jersey-core
), alle diese Gläser sind "Spezifikation" Gläser. Die JAX-RS (sowie viele andere Java) Spezifikationen definieren die Verträge (oder Schnittstellen), die die Hersteller implementieren sollte das angegebene Verhalten für.Also im Grunde alle Klassen, angegeben in der Spezifikation sollte in der jar-Verträge. End-Benutzer der Gläser können Sie für die Verträge. aber es gibt keine Umsetzung. Sie müssen eine tatsächlich Umsetzung, um die Anwendung auszuführen, obwohl die spec-API-jar ist genug, um kompilieren eine komplette JAX-RS kompatiblen Anwendung.
Zum Beispiel, wenn wir einer von denen Spezifikation API jars im classpath, können wir Autor eine ganze JAX-RS-Anwendung und kompilieren Sie es, aber um es zu starten, wenn wir nicht die eigentliche Umsetzung, die wir bereitstellen müssen, um einen server, der die eigentliche Implementierung der spec-version, z.B. JBoss oder Glassfish
jaxrs-api - Das ist RESTeasy ist Verpackung des spec. Es ist nicht die offizielle spec-Glas, aber es funktioniert, halten Sie die spec-Verträge. RESTeasy verwendet dieses Glas für die gesamte spec-Zeile, D. H. 1.x - Strom. Obwohl das Glas ändert Einbauten zu halten, um die verschiedenen JAX-RS Versionen.
jsr311-api - Dies ist die offizielle spec-Glas für die JAX-RS-1.x line.
javax.ws.rs-api - Dies ist die offizielle spec-Glas für die JAX-RS-2.x line.
jersey-core - Dies ist eine unvollständige Implementierung der spec. Der rest der Implementierung enthalten ist, in anderen Jersey-jars. Beachten Sie, dass in früheren Versionen von Jersey, Sie verpackten die JAX-RS Spezifikation APIs in diesem jar. Es war nicht bis später, dass Jersey begann mit der offiziellen spec-Gläser.
jaxrs-ri - - das ist das komplette Trikot 2.x Umsetzung, verpackt in eine jar. Das "ri" bedeutet Referenz-Implementierung, was Jersey ist: die JAX-RS Referenz-Implementierung. Wenn Sie nicht über ein dependency manager wie Maven, möchten Sie vielleicht, um Sie nur in diesem einzigen jar-statt alle einzeln Gläser, Jersey kommt mit.
Andere Ressourcen
Beachten Sie auch, dass, obwohl unterschiedliche Umsetzung der Einhaltung der Spezifikation, jede Anwendung hat seine eigenen extra-features. Um mehr zu erfahren, sollten Sie gehen Sie durch die Dokumentation der unterschiedlichen Implementierung. Die drei beliebtesten Implementierungen sind Jersey, RESTeasy, und CXF