Hi Benson
On 24/11/11 03:03, Benson Margulies wrote:
Situation:

I'm using jquery forms to submit a multipart to a JAX-RS service. So,
JQuery is using an iframe, and as a result error responses disappear.
All I get to see is the entity.

If I make a mistake such that CXF generates a WebApplicationException

e.g.

2011-11-23 21:59:09,885 [http-bio-15000-exec-30] WARN
org.apache.cxf.jaxrs.utils.JAXRSUtils - No multipart with content id
btArch found, request content type :
multipart/form-data;boundary=----WebKitFormBoundary1JsUh4wyAbhxFGfC
2011-11-23 21:59:09,885 [http-bio-15000-exec-30] WARN
org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper -
WebApplicationException has been caught : no cause is available

then there's no entity.

Is there some sort of exception mapper I can use to add some payload
to this case to indicate the error?

I've added MultipartReadException which captures an expected id, content-type (if any) and the error message, and it's wrapped in WebApplicationException. So by default the error text content being returned. You can customize it by registering your own WebApplicationException mapper, check the exception cause, if MultipartReadException - work with it, otherwise return the available WebApplicationException Response or create some default Response - you may wish to delegate to the default WebApplicationExceptionMapper; another option - override MultipartProvider.readFrom and customize WebApplicationException earlier.

The reason I thought MultipartReadException was worth wrapping was that users would otherwise get the stacktraces back unless a custom MultipartReadException is registered

Cheers, Sergey

Reply via email to