A message body writer for Java class not found

java, jax-rs, rest

Solution

I finally found my answer. I added

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.8</version>
</dependency>

to my pom.xml file. Then I added

<init-param>
    <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
    <param-value>true</param-value>
</init-param>

to my web.xml file, and everything works fine. No change was required to my code above.

Problem

I am new to using JAX-RS and wrote a sample application that outputs a json object. but I am getting an exception. Here is my code: ``` @Path("/hello") public class HelloWorldService { @GET @Path("/query/{artist_id}") @Produces("application/json") public Data getMsg(@PathParam("artist_id") int artist_id, @QueryParam("from") int from, @QueryParam("to") int to) { Data d=new Data(); d.setName("Mateen"); d.setRoll(77); return d; } ``` } My data is simply a POJO class: ``` @XmlRootElement public class Data { private int roll; private String name; public int getRoll() { return roll; } public void setRoll(int roll) { this.roll = roll; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` I get an exception: ``` javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.abc.data.Data, and Java type class com.abc.data.Data, and MIME media type application/json was not found ``` What am i doing wrong ?

Original source

Related problems