2017-09-20 5 views
0

J'essaie actuellement de créer un client Resteasy, en utilisant la version 2.3.10.Final. Malheureusement, je ne devrais pas utiliser une version plus récente. Je suis très nouveau à ce sujet, alors j'espère que je parviens à fournir toutes les informations nécessaires pour rendre cette question responsable.Resteasy 2.3.10.Final ClientResponse.readEntity AbstractMethodError

D'abord, la demande est créée et finalement "PUT". Le ClientResponse renvoyé doit être évalué.

Je peux appeler avec succès

Response.getStatus() 

me montrant que le « PUT » a été un succès car le statut est égal à

Response.Status.CREATED.getStatusCode() 

Cependant, toute tentative d'appel response.readEntity Renvoie la erreur

java.lang.AbstractMethodError: javax.ws.rs.core.Response.readEntity(Ljava/lang/Class;)Ljava/lang/Object; 
at blabla.evaluateResponse(MyResteasyClient.java:80)´ 

Ceci est pour toute tentative d'appeler .readEntity, mais pour des raisons de sp ecificity, concentrons-nous sur

String entity = Response.readEntity(String.class); 

Lors d'une tentative response.getEntity(), elle renvoie le message d'erreur suivant:

java.lang.RuntimeException: RESTEASY001555: No type information to extract entity with, use other getEntity() methods 
at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:337) 
at blabla.evaluateResponse(MyResteasyClient.java:81) 

Suis-je même sur la bonne voie? Mon but est de réaliser quelque chose le long des lignes de:

List<? extends MyResponse> myResponses = response.readEntity(new GenericType<List<MyResponse>>() {}); 

Lorsque la classe "MyResponse" est une implémentation de l'interface

public interface MyPartialResponse { 
boolean isSuccessful(); 
String getMessage(); 
} 

Les dépendances dans pom.xml sont:

<properties> 
    <version.jackson>2.6.5</version.jackson> 
    <version.resteasy-client>2.3.10.Final</version.resteasy-client> 
</properties> 

<dependencies> 
    (removed a company specific dependency) 
    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jaxrs</artifactId> 
     <version>${version.resteasy-client}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jackson-provider</artifactId> 
     <version>${version.resteasy-client}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>${version.jackson}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>${version.jackson}</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.1.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.6</version> 
    </dependency> 
</dependencies> 

Répondre

0

Si quelqu'un arrive à atterrir sur cette question avec la même erreur, permettez-moi de fournir la réponse, comment je résolu mon problème:

En ajoutant

BaseClientResponse<?> r = (BaseClientResponse<?>) response; 

je pourrais appeler avec succès

r.getEntity(new GenericType<List<MyResponse>>() {}); 
0

Je pense qu'il y a un conflit entre les fichiers Jar dans Maven. Veuillez vérifier votre hiérarchie de dépendance maven.