-
Bug
-
Resolution: Done
-
Major
-
3.0.12.Final
-
None
When a client offers multiple media types in an Accept header, for example, Accept: text/html, image,jpg, text/json, *
https://github.com/resteasy/Resteasy/blob/3.0.10.Final/jaxrs/resteasy-jaxrs/src/main/java/org/jboss/resteasy/core/registry/SegmentNode.java#L430 selects the most specific type and places it as an attribute without taking into consideration the MessageBodyWriters available.
When the type is retrieved in https://github.com/resteasy/Resteasy/blob/3.0.10.Final/jaxrs/resteasy-jaxrs/src/main/java/org/jboss/resteasy/core/ServerResponseWriter.java#L129 it is only the best type chosen previously, irrespective of current MessageBodyWriters available.
If I have a resource that can return different object types, for example, String & JsonObject. and in this case, my endpoint returns returns a JsonObject, I will get an error similar to:
Could not find MessageBodyWriter for response object of type: org.glassfish.json.JsonObjectBuilderImpl$JsonObjectImpl of media type: text/html
There isn't a writer registered for text/html but there is one for text/json, which would have been handled by the text/json or *
- causes
-
RESTEASY-2731 HEAD request fails with 406 instead of resolving MessageBodyWriter
- Closed
- is incorporated by
-
JBEAP-10916 [GSS](7.1.0) MediaType set incorrectly in SegmentNode when multiple media types are offered.
- Closed
-
JBEAP-11007 [GSS](7.0.z) RESTEASY-1227 - MediaType set incorrectly in SegmentNode when multiple media types are offered.
- Closed
- relates to
-
RESTEASY-1686 Media type negotiation unexpected behavior
- Closed
-
RESTEASY-3538 Update determining the MediaType of Responses to check MessageBodyWriter's which support the entity type
- Pull Request Sent