前回の「JAX-RSをやってみる (3) – AutoDiscoverable -」とかだと
package sample.controller;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import sample.bean.SampleBean;
import static javax.ws.rs.core.MediaType.*;
@Path("/sample")
public class Home {
@Path("save")
@POST
@Consumes(APPLICATION_JSON)
@Produces(APPLICATION_JSON)
public SampleBean save(SampleBean bean) {
return bean;
}
}
なんていうので
package sample.controller;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.Application;
import org.glassfish.jersey.test.JerseyTest;
import org.junit.Test;
import sample.SampleApplication;
import sample.bean.SampleBean;
import static javax.ws.rs.core.MediaType.*;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
public class HomeTest extends JerseyTest {
@Override
protected Application configure() {
return new SampleApplication();
}
@Test
public void test_save() {
Entity<SampleBean> entity = Entity.entity(
new SampleBean("hoge"),
APPLICATION_JSON
);
SampleBean response = target("/sample/save").request().post(entity, SampleBean.class);
assertThat(response, notNullValue());
}
}
なんていうテストをやってみると「not found MessageBodyReader」なんていうエラーになるわけで。もちろん前回のはMessageBodyWriterは実装してあるけど、MessageBodyReaderが実装されてないので。っていう事でMessageBodyReaderを実装してみた