import javax.validation.constraints.NotNull; import javax.ws.rs.GET; import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Application; import javax.ws.rs.core.MediaType; import org.junit.Test; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import io.reactivex.Maybe; public class MissingBodyWriterTest extends RxJerseyTest { @Override protected Application configure() { return config().register(XmlResource.class); } @Test(expected = InternalServerErrorException.class) public void shouldReturnInternalServerError() { target("xml").path("writeXml") .request() .get(Message.class); } @Path("/xml") @Produces(MediaType.APPLICATION_XML) public static class XmlResource { @GET @Path("writeXml") public Maybe<Message> writeXml() { return Maybe.just(new Message("hello")); } } public static class Message { @NotNull public String message; @JsonCreator public Message(@JsonProperty("message") String message) { this.message = message; } } }