Jboss JAX RS WebApplicationException不记录日志

Jboss JAX RS WebApplicationException不记录日志,jboss,jax-rs,wildfly,java-ee-7,Jboss,Jax Rs,Wildfly,Java Ee 7,我将一个bean注入我的REST web服务,然后从我的bean调用一个方法,在该方法中引发以下异常: throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND)).build()); 打印孔堆栈轨迹。如何避免打印?这是一个老问题,但也许有人仍然需要答案: 您可以为此使用ExceptionMapper。以下是我们使用的: package at.chex.archichexture.exceptions

我将一个bean注入我的REST web服务,然后从我的bean调用一个方法,在该方法中引发以下异常:

throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND)).build());

打印孔堆栈轨迹。如何避免打印?

这是一个老问题,但也许有人仍然需要答案:

您可以为此使用ExceptionMapper。以下是我们使用的:

package at.chex.archichexture.exceptions;

import javax.inject.Inject;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
import org.slf4j.Logger;

/**
 * @author cheX GmbH Austria {@literal chex@chex.at}
 * @author Jakob Galbavy {@literal jg@chex.at}
 * @since 19.06.18
 */
@Provider
public class WebApplicationExceptionMapper implements ExceptionMapper<WebApplicationException> {

  @Inject
  private Logger log;

  @Override
  public Response toResponse(WebApplicationException webApplicationException) {
    int status = webApplicationException.getResponse().getStatus();
    if (status >= 400 && status < 500) {
      log.warn("Returning Error ({}): {}", status, webApplicationException.getLocalizedMessage());
    } else {
      log.error("Exception in Webservice {}", status, webApplicationException);
    }
    return webApplicationException.getResponse();
  }
}
包at.chex.archichexture.exceptions;
导入javax.inject.inject;
导入javax.ws.rs.WebApplicationException;
导入javax.ws.rs.core.Response;
导入javax.ws.rs.ext.ExceptionMapper;
导入javax.ws.rs.ext.Provider;
导入org.slf4j.Logger;
/**
*@author cheX GmbH奥地利{@literalchex@chex.at}
*作者Jakob Galbavy{@literaljg@chex.at}
*@自18年6月19日起
*/
@提供者
公共类WebApplicationExceptionMapper实现ExceptionMapper{
@注入
私人日志记录器;
@凌驾
公共响应(WebApplicationException WebApplicationException){
int status=webApplicationException.getResponse().getStatus();
如果(状态>=400&&status<500){
warn(“返回错误({}):{}”,状态,webApplicationException.getLocalizedMessage());
}否则{
错误(“Webservice{}中的异常”,状态,webApplicationException);
}
返回webApplicationException.getResponse();
}
}