2014-06-26 2 views
0

J'ai une entité simple que j'essaie de retourner en utilisant Jersey 2.x et Jackson 2.x pour le codage JSON.Jersey jetant "MessageBodyWriter non trouvé" exception sur chaque requête GET?

Cependant quand je frappe le point final dans le navigateur pour une requête GET, il échoue avec:

HTTP Status 500 - org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class com.package.ResponseWrapper, genericType=class com.package.ResponseWrapper. 

Je soupçonne que cela est dû à une dépendance manque ou ne correspond pas à des versions. J'ai essayé plusieurs mais j'ai toujours le même problème.

J'utilise Maven, et voici comment les dépendances liées à Jersey ressemblent:

<dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet</artifactId> 
     <version>2.9.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>2.9.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-common</artifactId> 
     <version>2.9.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.ext</groupId> 
     <artifactId>jersey-entity-filtering</artifactId> 
     <version>2.9.1</version> 
    </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.4.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.jaxrs</groupId> 
     <artifactId>jackson-jaxrs-json-provider</artifactId> 
     <version>2.4.1</version> 
    </dependency> 

Je lis des gens de fixation en ajoutant la dépendance suivante:

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-json</artifactId> 
    <version>1.8</version> 
</dependency> 

.. Mais puisque je suis sur Jersey 2.x et que j'utilise le fournisseur de Jackson (jackson-jaxrs-json-provider), je ne pense pas que ce soit la voie à suivre pour moi.

Je ne sais pas comment procéder ici .. quelqu'un a des idées sur ce que je pourrais manquer?

Merci!

Répondre

0

Ok, a trouvé la question ...

J'ai oublié d'ajouter

packages("com.fasterxml.jackson.jaxrs.json"); 

à ma classe ResourceConfig.

Maintenant tout fonctionne!

Questions connexes