[
https://issues.apache.org/jira/browse/CXF-6754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15113443#comment-15113443
]
Neal Hu commented on CXF-6754:
------------------------------
It is the TCK case in order to verify the determination of Response media type.
Only if there is no @Produces at resource method or class, we get the media
type from write candidates. Now cxf always get from write candidates when
request Accept has subwild. I made a path check if there is @Produces in
matched resource method or class. Please review the patch. Thanks.
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)