GEDOPLAN

Jackson + Glassfish 4.1.1

Alle

Vor kurzem hatten wir einen netten Beitrag zum Thema JSON-Parsen mit Jackson (Beitrag). Die dort verwendeten Beispiele wurden alle auf einem Wildfly zum laufen gebracht, schließlich wird Jackson als Standard JSON-Parser auf diesem Server verwendet. Aber wie sieht es denn mit dem Glassfish aus?

Der Glassfish 4 verwendet im Standard „Moxy“ als Parser für JSON. Jackson wird jedoch als Alternative mitgeliefert und so Bedarf es „eigentlich“ „nur“ einer Konfiguration um die Bibliothek zu aktivieren:

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.15</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-server</artifactId>
    <version>2.10.4</version>
    <scope>provided</scope>
</dependency>

Und die Registrierung unserer Webservices:


import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.server.ResourceConfig;

@ApplicationPath("/rest")
public class JerseyApplicationResource extends ResourceConfig {

    public JerseyApplicationResource() {
        System.out.println("Register Jackson");
        super.register(JacksonFeature.class)
                .packages("de.gedoplan.showcase.resources");
    }

Theoretisch sind wir damit am Ende . Leider nur theoretisch. Auf dem aktuellen Glassfish 4.1.1 beglückt uns dieses Setup mit einer Fehlermeldung:

java.lang.ClassNotFoundException: com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector not found by com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider [128]
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

Dahiner steckt ein seit langem bekannter Bug:
https://java.net/jira/browse/GLASSFISH-21141

Dieser ist zum Glück schnell behoben. Durch das hinzufügen der fehlenden Bibliothek: jackson-module-jaxb-annotations-2.5.4 im glassfish/modules – Ordner und anschließendem Restart funktioniert Jackson auch Klaglos mit unserem Glassfish.

Demoprojekt erweitert
pom.xml
JerseyApplicationResource.java

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Schulungen mit der selben Kategorie:

Blogkategorie: Alle
Es wurden keine Ergebnisse gefunden.

weitere Artikel

Kontakt

Brauchen Sie eine individuelle IT-Schulung, eine fundierte Beratung oder eine individuelle Softwareentwicklung? Dann sind Sie hier genau richtig!

Tim Neumann

Geschäftsleitung

GEDOPLAN GmbH
Stieghorster Straße 60
33605 Bielefeld

GEDOPLAN GmbH
Kantstraße 164
10623 Berlin

    Kontakt

    Tim Neumann

    Geschäftsleitung

    GEDOPLAN GmbH
    Stieghorster Straße 60
    33605 Bielefeld

    GEDOPLAN GmbH
    Kantstraße 164
    10623 Berlin

    Brauchen Sie eine individuelle IT-Schulung, eine fundierte Beratung oder eine individuelle Softwareentwicklung? Dann sind Sie hier genau richtig!