[ https://issues.apache.org/jira/browse/CXF-6754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15114064#comment-15114064 ]
Neal Hu commented on CXF-6754: ------------------------------ Hi Sergey, I think the case is valid. The mediaType of the response MUST be concrete, which means the text/wildcard in the response http header is invalid. Currently JAXRSOutInterceptor check the Accept header from request first, if it contains sub wildcard, then check all writer candidates to get the nearest mediaType from writer's @Produces. However, in the spec 3.8|2 mentioned the implementation should check the resource method or class's @Produces first, if all return null then check the writer to get the final mediaType of response. I do agree with the TCK case looks strange how we expect 406 when the Accept matches the @Produces on method. But if the @Produces on method is contains sub wildcard, the Accept contains sub wildcard is not acceptable. Any further question please let me know. Neal > Determin Media Type in Response > ------------------------------- > > Key: CXF-6754 > URL: https://issues.apache.org/jira/browse/CXF-6754 > Project: CXF > Issue Type: Bug > Components: JAX-RS > Affects Versions: 3.0.7, 3.1.4 > Environment: Windows > Reporter: Neal Hu > Fix For: 3.1.5, 3.0.8, 3.2.0 > > Attachments: JAXRSOutInterceptor.patch > > > @GET > @Path("text") > @Produces(value = "text/*") > public String geText() { > return "text/* is ok"; > } > request Accept=text/* > Per spec 3.8|2 > 2. Gather the set of producible media types P: > • If the method is annotated with @Produces, set P = fV (method)g where V (t) > represents the > values of @Produces on the specified target t. > • Else if the class is annotated with @Produces, set P = fV (class)g. > • Else set P = fV (writers)g where ‘writers’ is the set of MessageBodyWriter > that support the > class of the returned entity object. > Check the resource method anno first then class anno, at last check writers. > So the response code should be 406. -- This message was sent by Atlassian JIRA (v6.3.4#6332)