2017-06-21 9 views
1

Ich lerne REST-Dienste mit dem Jetty-Server, der Jersey-Bibliothek und dem JAX-RS.Zurücksenden einer JSON-Antwort

ich die folgende Methode haben, die alle Kunden Objekte zurückgeben sollte (in XML oder JSON-Format):

@GET 
    @Produces({ "application/xml", "application/json" }) 
    public Collection<Customer> getAll() { 
     List<Customer> customerList = new ArrayList<Customer>(customerDB.values()); 
     return customerList; 
    } 

Die Kundenobjekte ist definiert als:

package com.rest.domain; 

import javax.xml.bind.annotation.XmlRootElement; 
import javax.xml.bind.annotation.XmlElement; 

@XmlRootElement(name = "customer") 
public class Customer { 
    // Maps a object property to a XML element derived from property name. 
    @XmlElement 
    public int id; 
    @XmlElement 
    public String firstname; 
    @XmlElement 
    public String lastname; 
    @XmlElement 
    public String email; 
} 

Wenn ich die schicken folgende Befehl von curl Ich erhalte eine xml-Antwort (anstelle von json, wie angefordert):

curl -H "Content-Type: application/json" -X GET http://localhost:8085/rest/customers/ 

Warum gibt es eine xml-Antwort zurück, wenn ich json anfordere?

Antwort

1

Sie senden eine Content-Type:-Kopfzeile, die sich auf den Inhaltstyp bezieht, den Sie an den Server senden (da es sich um ein GET handelt, senden Sie eigentlich nichts). Ich denke, dass Sie das zu einem Accept: application/json-Header ändern möchten, der dem Server den Typ der Antwort mitteilt, die Sie erhalten möchten.

+0

Vielen Dank. Das war's! :) – TheAptKid

Verwandte Themen