2017-12-07 4 views
-1

Ich habe dies: Map<String, Object> social = new HashMap<String, Object>(); social.put("socialId", socialId); social.put("savedComment", savedComment);ResponseBuilder - Long kann nicht in Collection umgewandelt werden?

und ich versuche, dies zu tun: builder = Response.status(Response.Status.OK).entity(social);

Warum ich HTTP-Status erhalten 500 - java.lang.ClassCastException: java.lang.Long java gegossen werden kann nicht .util.Collection, da Object mit langen und allgemeinen Objektklassen arbeiten sollte? Kann ich nicht zwei verschiedene Arten von Daten senden, also Daten enthält data.socialId (als Long) und data.savedComment (als Objekt)?

* SocialId ist übrigens ein Long-Objekt und SavedComment ist ein SocialComment-Objekt.

Antwort

1

Wenn Sie entity() an der API-Dokumentation sehen, heißt es

Jede Java-Typ-Instanz für eine Antwort Entität, die von unterstützt wird die Laufzeit übergeben werden kann. Es liegt in der Verantwortung des Anrufers, die tatsächliche Entität mit GenericEntity zu zu verpacken, wenn die Erhaltung seines generischen Typs erforderlich ist.

Ihre Karte muss also GenericEntity unterstützen, wenn Sie den Typ in der Antwort beibehalten müssen.

Quelle: https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/Response.ResponseBuilder.html#entity-java.lang.Object-

+0

Wie kann ich es mit GenericEntity wickeln? –

Verwandte Themen