@Override
 public void onRpcRequest(
     RpcRequest req,
     RequestContext requestContext,
     Map<String, String> wireAttrs,
     NextFilter<RpcRequest, RpcResponse> nextFilter) {
   trace("onRpcRequest", req, wireAttrs, requestContext);
   nextFilter.onRequest(req, requestContext, wireAttrs);
 }
 @Override
 public void onRestResponse(
     RestResponse res,
     RequestContext requestContext,
     Map<String, String> wireAttrs,
     NextFilter<RestRequest, RestResponse> nextFilter) {
   trace("onRestResponse", res, wireAttrs, requestContext);
   nextFilter.onResponse(res, requestContext, wireAttrs);
 }
 @Override
 public void onRestError(
     Throwable ex,
     RequestContext requestContext,
     Map<String, String> wireAttrs,
     NextFilter<RestRequest, RestResponse> nextFilter) {
   warn("onRestError", ex, wireAttrs, requestContext);
   nextFilter.onError(ex, requestContext, wireAttrs);
 }
 @Override
 public void onRestRequest(
     RestRequest req,
     RequestContext requestContext,
     Map<String, String> wireAttrs,
     NextFilter<RestRequest, RestResponse> nextFilter) {
   trace("onRestRequest", req, wireAttrs, requestContext);
   requestContext.putLocalAttr(REQUEST_URI, req.getURI());
   requestContext.putLocalAttr(REQUEST_METHOD, req.getMethod());
   nextFilter.onRequest(req, requestContext, wireAttrs);
 }