import java.text.ParseException; import java.util.Date; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.ResponseBuilder; @Path("/test") public class ModifiedSinceTest { @GET @Path("/modified") @Produces("text/html") public Response getGroups(@HeaderParam("If-Modified-Since") Date modifiedSince) throws ParseException { if (modifiedSince == null || modifiedSince.before(new Date(System.currentTimeMillis() - 10000))) { String resp = "

Hello world " + modifiedSince + "

"; ResponseBuilder builder = Response.ok(resp); // Workaround: // builder.header("Last-Modified", DateUtil.formatDate(new Date())); builder.lastModified(new Date()); return builder.build(); } else { return Response.notModified("No new Groups").build(); } } }