Manejo de tipos de contenido no coincidentes en Jersey
Sigo recibiendo errores de la forma:
java.lang.IllegalStateException: The @FormParam is utilized when the content type of the request entity is not application/x-www-form-urlencoded
Así que intenté defenderme de este error, como se muestra a continuación:
@Path("auth")
@Produces(MediaType.APPLICATION_JSON)
public class Auth {
@POST
@Path("login")
@Consumes(MediaType.WILDCARD)
public Response create()
{
return Response.status(Status.UNSUPPORTED_MEDIA_TYPE).build();
}
@POST
@Path("login")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response create(@Valid @NotNull @FormParam("username") final String username,
@Valid @NotNull @FormParam("password") final String password)
{
Sin embargo, esto no evita el problema. Los mensajes de registro FINE generados son muy spam.
Tengo dos preguntas:
¿Por qué no se invoca el método más genérico cuando Content-Type está vacío?¿Cómo puedo evitar que se invoque el método real, cuando no coincide con sus @Consumes, para evitar el registro de spam?El entorno funciona con Grizzly 2.3.28, Jersey 2.25.1, MOXy 2.7.1