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?
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?
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
Tags und Links rest jackson jersey jersey-2.0