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