2016-04-20 2 views
-1

Ich habe einen Webservice, der eine "Map" zurückgibt, ich versuche, dieses Objekt aus der Antwort (javax.ws.rs.core) zu lesen. so etwas wie dieses: ex: Map<String, Object> temp = response.readEntity(Map.class) aber das scheint nicht zu funktionieren.Read Map-Entität in JAX-RS-Client

Meine Frage ist, wie lese ich eine Map-Entität aus einem Antwortobjekt?

+0

eine Karte Einheit Lesen hat die Illegal nicht verursachen. Bitte geben Sie ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) an –

+0

Für mich war der Fehler org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader nicht für Medientyp = gefunden text/html; charset = ISO-8859-1, type = Schnittstelle java.util.Map, genericType = Schnittstelle java.util.Map. – FelixJongleur42

Antwort

5

Es wurde eine Möglichkeit gefunden, die Map-Entity von response zu lesen. Ich vermute, dass ich die Implementierungsklasse für Map bereitstellen musste.

response.readEntity(new GenericType<HashMap<String, Object>>() { });

+0

Dies funktioniert mit Jersey aber funktioniert nicht mit Apache CXF (TomEE), wo ich bekomme org.apache.johnzon.mapper.MapperException: ObjectConverter werden nur für Klassen nicht Typen unterstützt. Dies funktioniert mit CXF: 'client.get (HashMap.class)' und wahrscheinlich auch 'response.readEntity (HashMap.class) ' –