Search code examples
javaxmltomcatjacksonresteasy

Rest easy 3 + Jackson + Tomcat + XML response


For getting json response reseasy defines a way to integrate with Jackson. using reseasy-jackson-provider and resteasy-jackson2-provider.

Jackson can also be used to seralize deserialize from\to XML. i.e with jackson-jaxrs-xml-provider and jackson-dataformat-xml. But using these and producing XML response fails with

org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: someclass of media type: application/xml

Dependencies used

        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>${resteasy.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-validator-provider-11</artifactId>
            <version>${resteasy.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-servlet-initializer</artifactId>
            <version>${resteasy.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jackson2-provider</artifactId>
            <version>${resteasy.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-xml-provider</artifactId>
            <version>${jackson.version}</version>
        </dependency>

Resource

@GET
@Path("/foo/{id}")
@Produces({MediaType.APPLICATION_XML})
public Foo getFoo(@PathParam("id") int id);

Solution

  • created https://issues.jboss.org/browse/RESTEASY-1352

    lets see if it gets into resteasy artifacts.