如何在使用JAVA的CXF Restful WebServices中包含特殊处理机制

时间:2016-06-30 07:05:35

标签: java web-services rest cxf

我已按照此链接构建了我的CXF Restful WebServices URL。 我正在尝试处理这些Web服务中的异常。

任何人都可以向我建议一些关于如何在我的网络服务中包含特殊处理机制的链接。

1 个答案:

答案 0 :(得分:3)

我们正在做以下事情:

@Component
public class ThrowableInterceptor
  implements ExceptionMapper<Throwable>
{
  private static final Logger logger = LoggerFactory.getLogger( ThrowableInterceptor.class );

  @Override
  public Response toResponse( Throwable exception )
  {
   logger.error(
      "Exception with caught", exception );
    ErrorResponse errorResponse = new ErrorResponse(
      ServiceErrorCodes.GENERAL_ERROR.getErrorCode(), "unknown error" );
    return Response.status( Response.Status.INTERNAL_SERVER_ERROR )
      .type( MediaType.APPLICATION_JSON_TYPE )
      .entity( errorResponse )
      .build();
  }
}

正如你所看到的那样,有ExceptionMapper,如果抛出一些Throwable,它会转到这个拦截器并被包装到自定义ErrorResponse。您可以使用此方法并自定义任何异常处理,即validationException,dataAccessException e.t.c