71.2 Write an XML REST service
If you have the Jackson XML extension (jackson-dataformat-xml
) on the classpath, it will be used to render XML responses and the very same example as we used for JSON would work. To use it, add the following dependency to your project:
<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> </dependency>
You may also want to add a dependency on Woodstox. It’s faster than the default StAX implementation provided by the JDK and also adds pretty print support and improved namespace handling:
<dependency> <groupId>org.codehaus.woodstox</groupId> <artifactId>woodstox-core-asl</artifactId> </dependency>
If Jackson’s XML extension is not available, JAXB (provided by default in the JDK) will be used, with the additional requirement to have MyThing
annotated as @XmlRootElement
:
_@XmlRootElement_ public class MyThing { private String name; // .. getters and setters }
To get the server to render XML instead of JSON you might have to send an Accept: text/xml
header (or use a browser).