I just had a chance to look a little closer at this. It appears that
when we use the CXF servlet transport the mime types for the "Accept:" &
"Content-Type:" headers are not being propagated into the jax-rs
runtime. I'm currently investigating why this is the case.
BTW I was mistaken on the ProduceMime thing yesterday, you can specify
multiple mime types in the @ProduceMime annotation, you simply need to
encose the array of strings in curly braces like the following:
@ProduceMime({"application/xml", "application/json"})
duh! ;)
--Frank
On Wed, 2008-01-23 at 14:33 -0500, Frank Lynch wrote:
> I'm seeing the same thing here, no matter what I do the runtime seems to
> want to dispatch the call to the method annotated application/json. I
> also noted that it isn't possible to annotate a single method with
> multiple mime types. i.e. per the dec4th jsr311 draft it should be
> possible t0 annotate a method with the following:
> @ProduceMime("application/xml", "application/json")
> alas, this doesn't appear to be supported in cxf yet. I guess we should
> log JIRA's for these.
> --Frank
>
> On Wed, 2008-01-23 at 07:12 -0800, brmaguir wrote:
> > Hi,
> >
> > Does CXF support the JSR311 @ProduceMime annotation fully? Here's the code:
> >
> > import com.sun.ws.rest.api.ConsumeMime;
> > import com.sun.ws.rest.api.HttpMethod;
> > import com.sun.ws.rest.api.ProduceMime;
> > import com.sun.ws.rest.api.UriTemplate;
> >
> > @UriTemplate("/sampleservlet")
> > public class SampleServlet {
> >
> > @HttpMethod("PUT")
> > @ConsumeMime("text/plain")
> > @ProduceMime("application/xml")
> > public void getXML() {
> > System.out.println("### Handle PUT for sampleservlet: XML ###");
> > }
> >
> > @HttpMethod("PUT")
> > @ConsumeMime("text/plain")
> > @ProduceMime("application/json")
> > public void getJSON() {
> > System.out.println("### Handle PUT for sampleservlet: JSON
> > ###");
> > }
> > }
> >
> > When the client specifies the Accept parameter in the http header as
> > application/json or application/xml I would expect the corresponding method
> > to be called according to the @ProduceMime specified before the method. Is
> > this supported? It doesn't seem to be working as expected for me.
> >
> > Thanks in advance.