Thanks Romain, it seems using a ContainerRequestFilter did the job. I will open a ticket.
On Wed, Dec 25, 2019 at 2:45 PM Romain Manni-Bucau <rmannibu...@gmail.com> wrote: > 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; > > > } > > > > > > > > >