2012-03-26 2 views
0

ich einen ähnlichen Fall haben, wie die hier beschriebenen: Dynamically change RESTEasy service return typeResteasy Antwort

Das Problem, das ich mit Blick auf bin ist, dass ich versuche, eine Liste von Objekten zurückkehren (kommentierten mit @XMLRootEntity), aber ich habe einen 500 Server-Fehlercode:

der Server hat einen internen Fehler (kann nicht MessageBodyWriter für Response-Objekt vom Typ finden: java.util.ArrayList von Medientyp: application/json), die sie von der Erfüllung dieser Anforderung verhindert .

Können Sie einen Rat geben, wie Sie dieses Problem lösen können?

Ich bin mir nicht sicher, wo genau ich hinschauen soll.

Danke.

Antwort

8

Sie sollten Schnittstelle anstelle der Implementierung der Liste verwenden.

Versuchen Rückgabetyp Wechsel mit: java.util.List

EDIT: Try-Liste in GenericEntity einzuwickeln:

List<String> myList = new ArrayList<String>(); 
// add ... 
final GenericEntity<List<String>> entity = new GenericEntity<List<String>>(myList) { }; 
Response.status(Status.BAD_REQUEST).entity(entity).build(); 
+0

I Liste bin, aber ich denke, es ist die Umsetzung sieht in der Fehler-Stack. Bevor ich versuchte, die Antwort zurückzugeben, habe ich versucht, die Liste zurückzugeben und alles hat funktioniert. Beim Versuch, ein javax.ws.rs.Response-Objekt zurückzugeben, sind Probleme aufgetreten. – Radu

+0

Was ist der Rückgabetyp Ihrer Methode? – Aure77

+0

Sie können einen [ResponseBuilder] (http://docs.jboss.org/resteasy/docs/2.3.1.GA/javadocs/javax/ws/rs/core/Response.ResponseBuilder.html) verwenden, um die Antwort zu erstellen. Der Rückgabetyp muss eine javax.ws.rs.Response sein. Beispiel: 'Response.status (Status.BAD_REQUEST) .entity (myList) .build()' – Aure77