Wie man JSON-Ausgabe mit Jersey 1.6 mit JAXB erzeugt

@XmlRootElement
public class Todo {
    private String s = "test";

    public String getS() {
        return s;
    }

    public void setS(String s) {
        this.s = s;
    }

}

und service:

@Path("/test")
public class Service {

    @GET
    @Produces({MediaType.APPLICATION_JSON })
    public List<Todo> getAllGadgets() {
        return Arrays.asList(new Todo[] { new Todo() });
    }

}

meine web.xml:

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.test</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

All diese Arbeit, wenn ich MediaType.APPLICATION_XML für Produziert annotation. Aber für JSON bekomme ich die folgende exception:

SCHWERER: Abgebildet Ausnahme Antwort:
500 (Internal Server Error)
javax.ws.rs.WebApplicationException:
com.Sonne.jersey.api.MessageException:
message-body-writer für die Java-Klasse
java.util.Arrays$ArrayList und Java
geben Sie java.util.Liste
und MIME media-type application/json
wurde nicht gefunden

Verwende ich Jersey-1.6 und, nach dem tutorial, das JSON-format sollte die Arbeit mit JAXB ohne zusätzliche Programmierung. Was ist falsch?

InformationsquelleAutor der Frage Mikhail | 2011-05-17

Schreibe einen Kommentar