Mam taki problem.
Gdy metoda getClasses jest zakomentowana, program działa poprawnie.
W przeciwnym wypadku dostaje wyjątek "MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=class java.util.ArrayList."
Wgrana jest biblioteka genson-0.93
Main.java
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/web-api")
public class MainRest extends Application {
// @Override
// public Set<Class<?>> getClasses() {
// Set<Class<?>> classes = new HashSet<Class<?>>();
// classes.add(CoffeesResource.class);
// return classes;
// }
}
CoffeesResource.java
@Path("/hello")
public class CoffeesResource {
// vb.mediaTypes(MediaType.APPLICATION_XML_TYPE,
// MediaType.APPLICATION_JSON_TYPE)
// .languages(new Locale("en"), new Locale("es"))
// .encodings("deflate", "gzip").add();
@GET
// @Consumes(MediaType.TEXT_HTML)
@Produces(MediaType.APPLICATION_JSON)
public Response getCoffeList(@Context Request r) {
System.out.println("GOGOGO:");
Variant.VariantListBuilder vb = Variant.VariantListBuilder.newInstance();
// vb.mediaTypes(MediaType.TEXT_HTML_TYPE, MediaType.APPLICATION_XML_TYPE);
vb.mediaTypes(MediaType.APPLICATION_JSON_TYPE);
List<Variant> variants = vb.build();
Variant v = r.selectVariant(variants);
System.out.println(v.getMediaType());
if(v == null) return Response.notAcceptable(variants).build();
InitCoffes ic = new InitCoffes();
Response.ResponseBuilder builder = Response.ok(ic.getInitList());
return builder.build();
}
}