2

I am working in Java Web Service with Jersey. I'd like to understand how could handle the following problem:

Apparently, JAX-RS (JSR 311) for every situation with 406 Status, say that response will have no entity. For example, in section 3.7.2 Request Matching, Identify the method that will handle the request:

At least one of the acceptable response entity body media types is a supported output data format (see section 3.5). If no methods support one of the acceptable response entity body media types an implementation MUST generate a WebApplicationException with a not acceptable response (HTTP 406 status) and no entity. The exception MUST be processed as described in section 3.3.4.

However, RFC 2616 recommends another thing:

10.4.7 406 Not Acceptable

The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.

Unless it was a HEAD request, the response SHOULD include an entity containing a list of available entity characteristics and location(s) from which the user or user agent can choose the one most appropriate. The entity format is specified by the media type given in the Content-Type header field. Depending upon the format and the capabilities of the user agent, selection of the most appropriate choice MAY be performed automatically. However, this specification does not define any standard for such automatic selection.

  Note: HTTP/1.1 servers are allowed to return responses which are
  not acceptable according to the accept headers sent in the
  request. In some cases, this may even be preferable to sending a
  406 response. User agents are encouraged to inspect the headers of
  an incoming response to determine if it is acceptable.

So, what should I do for Jersey include an entity containing a list of available entity characteristics in 406 scenario.

rdllopes
  • 4,897
  • 4
  • 19
  • 36

1 Answers1

1

Answer my own question... I open a ticket in Jersey project to solve this issue. Jersey community promptly answered me that Java Spec to Webservice was already wrong. A new ticket should be opened in JAX project (Java Spec to Web Services) to in a future Jersey implement the right behavior.

https://java.net/jira/browse/JAX_RS_SPEC-363

However, checking JAX project you can find 63 unassigned tickets (100%).

https://java.net/jira/browse/JAX_RS_SPEC/fixforversion/14716

"So what?"

The last activity in this Jira was in Nov 2013. Last ticket opened was in May 2013. The first was in Jan 2009. Hardly there will be any change for this issue in the near future.

rdllopes
  • 4,897
  • 4
  • 19
  • 36