I don't think that's a Jersey limitation but rather baked into the JAX-RS spec (4.3.1):
'When choosing a context provider an implementation sorts the available providers according to the media types they declare support for. Sorting of media types follows the general rule: x/y < x/* < */*, i.e. a provider that explicitly lists a media type is sorted before a provider that lists */*.'
Have you looked at how the jersey-json module supports wildcards? It simply handles any media type and filters on isReadable/isWritable. Dropwizard could do something similar (though with unknown performance impact), e.g.,
@Provider
@Produces("application/*")
@Consumes("application/*")
public class JacksonMessageBodyProvider implements MessageBodyReader<Object>,
MessageBodyWriter<Object> {
...
@Override
public boolean isWriteable(Class<?> type,
Type genericType,
Annotation[] annotations,
MediaType mediaType) {
return json.canSerialize(type) &&
(mediaType.equals(MediaType.APPLICATION_JSON_TYPE) ||
mediaType.getSubtype().endsWith("+json"));
}
...