Brauchen wir noch JacksonFeature.class für Jersey 2.17 Projekte?

8

Ich habe versucht zu wissen, ob JacksonFeature.class noch für Jersey 2.17 benötigt wird. Ich kann keinen Unterschied zwischen den Ausgaben zwischen den Codes sehen, die JacksonFeature.class registriert ist oder nicht.

Dann gab ich einen Code von codingpedia codingpedia , entfernt JacksonFeature.class, aktualisiert auf Spring 4.1.2 und Jersey 2.17, aktualisiert die Codes und der Test ist noch bestanden.

Also habe ich einen sehr einfachen Web-Service erstellt, um dies erneut zu testen: github link darauf achten, alle beweglichen Teile zu entfernen und noch funktioniert. Also müssen wir noch Jacksonfeature registrieren?

    
Francis Zabala 25.03.2015, 04:06
quelle

1 Antwort

8
___ tag123rest ___ REST (Representational State Transfer) ist eine Art von Softwarearchitektur für verteilte Hypermedia-Systeme wie das World Wide Web. Es hat im Vergleich zu RPC-Architekturen wie SOAP aufgrund der intrinsischen Entkopplung von Client von Server, die von einer einheitlichen Schnittstelle zwischen heterogenen Systemen herrührt, an Popularität gewonnen. ___ qstnhdr ___ Brauchen wir noch JacksonFeature.class für Jersey 2.17 Projekte? ___ tag123jackson ___ Jackson ist eine Java-Bibliothek für Aufgaben wie Lesen und Schreiben (Parsen / Generieren) und Datenbindung an / von Java-Objekten. Obwohl Jackson hauptsächlich für JSON verwendet wird, unterstützt Jackson auch viele andere Datenformate wie Avro, CBOR, CSV, Java-Eigenschaften, Protobuf, Smile, XML und YAML. ___ tag123jersey20 ___ Jersey 2.0 ist die Open-Source-, JAX-RS 2.0- (JSR-339-) Referenzimplementierung für den frühen Zugriff zum Erstellen von RESTful-Webdiensten. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage speziell auf Jersey 2.0 bezieht. ___ qstntxt ___

Ich habe versucht zu wissen, ob JacksonFeature.class noch für Jersey 2.17 benötigt wird. Ich kann keinen Unterschied zwischen den Ausgaben zwischen den Codes sehen, die JacksonFeature.class registriert ist oder nicht.

Dann gab ich einen Code von codingpedia codingpedia , entfernt JacksonFeature.class, aktualisiert auf Spring 4.1.2 und Jersey 2.17, aktualisiert die Codes und der Test ist noch bestanden.

Also habe ich einen sehr einfachen Web-Service erstellt, um dies erneut zu testen: github link darauf achten, alle beweglichen Teile zu entfernen und noch funktioniert. Also müssen wir noch Jacksonfeature registrieren?

    
___ answer29247558 ​​___

Ja, ich weiß nicht, warum in diesem Tutorial sie Jersey 2.9 benutzen, aber für das jersey-media-json-jackson Artefakt benutzen sie 2.4.1. Im Allgemeinen sollten Sie die Versionen von Jersey (verwandtes Artefakt) beibehalten. Im aktuellen Github-Projekt hat der Autor dies geändert Die ${jersey.version} des Projekts (was 2,14 ist), was mehr Sinn macht.

Aber um Ihr Hauptanliegen zu beantworten, nimmt ab Version 2.9 das Modul jersey-media-json-jackson an dem AutoDiscovery Classpath scanning , was den Java-Service-Provider-Mechanismus beinhaltet . Sie können diese Änderung sehen, indem Sie auf die Version 2.8 und 2.9 (aufwärts) dieses Moduls hin- und herschalten. Sie sehen in META-INF/services die Datei org.glassfish.jersey.internal.spi.Autodiscoverable (die die JacksonAutoDiscoverable Implementierung auflistet), in Version 2.9 (und höher). Damit muss das Feature nicht explizit konfiguriert werden, es sei denn, die Funktion zur automatischen Erkennung ist deaktiviert (was explizit möglich ist).

Nur der Vollständigkeit halber, wenn Sie MOXy im Klassenpfad haben und Sie die Jackson-Funktion nicht explizit registrieren, wird MOXy verwendet, da MOXy der Standardanbieter ist. Auch wenn Sie keine explizite Abhängigkeit von MOXy haben, können Sie in Situationen wie dem Glassfish-Server das MOXy-Artefakt verwenden. In diesem Fall können wir entweder explizit das Jackson-Feature registrieren, das MOXy automatisch deaktiviert, oder explizit deaktivieren MOXy mit der Eigenschaft ServerProperties.MOXY_JSON_FEATURE_DISABLE , die auf "true" gesetzt ist

    
___ tag123jersey ___ Jersey ist die Open-Source-, Produktionsqualität, JAX-RS (JSR 311, JSR 339) Referenzimplementierung für die Erstellung RESTful Web-Services. ___
Paul Samsotha 25.03.2015, 04:38
quelle

Tags und Links