Hi Ivan

You can set it with a cxf interceptor or even jaxrs filter but looks like a
bug, at least the default. Default should be true only if there is no
custom mapper, not if there is any registered mapper matching and this is
known at deploy time. Guess you should open a ticket.

Le mer. 25 déc. 2019 à 15:32, Ivan Junckes Filho <ivanjunc...@gmail.com> a
écrit :

> It seems the issue is with:
> wae.spec.optimization property, it needs to be false or it
> webapplicationexception  will be skipped.
>
> But I can't find the way to set it to false. Property is part of
> org.apache.cxf.message.Message.
>
> Anyone can help? system.properties didn't work.
>
> On Wed, Dec 25, 2019 at 10:23 AM Ivan Junckes Filho <ivanjunc...@gmail.com
> >
> wrote:
>
> > Hello guys, I am trying to log the exception thrown by
> > WebApplicationExceptionMapper but the exception mapper is never called.
> >
> > Instead of calling it tomee calls ExceptionUtils.convertFaultToResponse.
> > Even writing a new default exception mapper doesn't work. Anyone knows
> how
> > can I print the exception of WebApplicationException? It can be using the
> > mapper or not.
> >
> > public static <T extends Throwable> Response convertFaultToResponse(T
> ex, Message currentMessage) {
> >     if (ex == null || currentMessage == null) {
> >         return null;
> >     }e
> >     Message inMessage = currentMessage.getExchange().getInMessage();
> >     Response response = null;
> >     if (ex instanceof WebApplicationException) {
> >         WebApplicationException webEx = (WebApplicationException)ex;
> >         if (webEx.getResponse().hasEntity()
> >             && webEx.getCause() == null
> >             && MessageUtils.getContextualBoolean(inMessage,
> SUPPORT_WAE_SPEC_OPTIMIZATION, true)) {
> >             response = webEx.getResponse();
> >         }
> >     }
> >
> >     if (response == null) {
> >         ExceptionMapper<T>  mapper =
> >
>  
> ServerProviderFactory.getInstance(inMessage).createExceptionMapper(ex.getClass(),
> inMessage);
> >         if (mapper != null) {
> >             try {
> >                 response = mapper.toResponse(ex);
> >             } catch (Throwable mapperEx) {
> >
>  inMessage.getExchange().put(JAXRSUtils.EXCEPTION_FROM_MAPPER, "true");
> >                 mapperEx.printStackTrace();
> >                 return Response.serverError().build();
> >             }
> >         }
> >     }
> >     if (response == null) {
> >         Throwable unwrappedException = ex.getCause();
> >         if (unwrappedException instanceof WebApplicationException) {
> >             WebApplicationException webEx =
> (WebApplicationException)unwrappedException;
> >             response = webEx.getResponse();
> >         }
> >     }
> >     JAXRSUtils.setMessageContentType(currentMessage, response);
> >     return response;
> > }
> >
> >
>

Reply via email to