I've had a CXF-based REST service in production for a little while. It changes its response format either with the "Accept" header, or by extension. I get xml with "Accept:application/xml" or if I add the ".xml" suffix to the request. Similarly, I get JSON with the analogous values for JSON. This service is using Jackson for its JSON representation.
I now have another service that will go to production soon. Using the suffix for xml or json works fine. However, it seems to ignore the "Accept" header. My "@Produces" annotation has both "application/json" and "application/xml", in that order. I get JSON by default, and I still get JSON if I send "Accept:application/xml" as an HTTP header. Just to make sure, I retested this same mechanism with the other service, and it correctly changes the format based on the "Accept" header. One difference between the two services is that the new service isn't using Jackson, it's using the default (Jettison, I assume). Otherwise, the "jaxrs:server" and other configuration is almost identical between the two services. Before I start pasting in my configuration and code, are there any simple reasons why this might not be working?
