• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java UnknownProtocolException类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.hadoop.hbase.exceptions.UnknownProtocolException的典型用法代码示例。如果您正苦于以下问题:Java UnknownProtocolException类的具体用法?Java UnknownProtocolException怎么用?Java UnknownProtocolException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



UnknownProtocolException类属于org.apache.hadoop.hbase.exceptions包,在下文中一共展示了UnknownProtocolException类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getMethodDescriptor

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
public static MethodDescriptor getMethodDescriptor(final String methodName,
    final ServiceDescriptor serviceDesc)
throws UnknownProtocolException {
  Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
  if (methodDesc == null) {
    throw new UnknownProtocolException("Unknown method " + methodName + " called on service " +
        serviceDesc.getFullName());
  }
  return methodDesc;
}
 
开发者ID:apache,项目名称:hbase,代码行数:11,代码来源:CoprocessorRpcUtils.java


示例2: execService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
/**
 * Executes a single protocol buffer coprocessor endpoint {@link Service} method using
 * the registered protocol handlers.  {@link Service} implementations must be registered via the
 * {@link HRegion#registerService(com.google.protobuf.Service)}
 * method before they are available.
 *
 * @param controller an {@code RpcContoller} implementation to pass to the invoked service
 * @param call a {@code CoprocessorServiceCall} instance identifying the service, method,
 *     and parameters for the method invocation
 * @return a protocol buffer {@code Message} instance containing the method's result
 * @throws IOException if no registered service handler is found or an error
 *     occurs during the invocation
 * @see org.apache.hadoop.hbase.regionserver.HRegion#registerService(com.google.protobuf.Service)
 */
public Message execService(RpcController controller, CoprocessorServiceCall call)
    throws IOException {
  String serviceName = call.getServiceName();
  String methodName = call.getMethodName();
  if (!coprocessorServiceHandlers.containsKey(serviceName)) {
    throw new UnknownProtocolException(null,
        "No registered coprocessor service found for name "+serviceName+
        " in region "+Bytes.toStringBinary(getRegionName()));
  }

  Service service = coprocessorServiceHandlers.get(serviceName);
  Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
  Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
  if (methodDesc == null) {
    throw new UnknownProtocolException(service.getClass(),
        "Unknown method "+methodName+" called on service "+serviceName+
            " in region "+Bytes.toStringBinary(getRegionName()));
  }

  Message request = service.getRequestPrototype(methodDesc).newBuilderForType()
      .mergeFrom(call.getRequest()).build();
  final Message.Builder responseBuilder =
      service.getResponsePrototype(methodDesc).newBuilderForType();
  service.callMethod(methodDesc, controller, request, new RpcCallback<Message>() {
    @Override
    public void run(Message message) {
      if (message != null) {
        responseBuilder.mergeFrom(message);
      }
    }
  });

  return responseBuilder.build();
}
 
开发者ID:cloud-software-foundation,项目名称:c5,代码行数:49,代码来源:HRegion.java


示例3: execMasterService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
@Override
public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,
    final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {
  try {
    master.checkInitialized();
    ServerRpcController execController = new ServerRpcController();

    ClientProtos.CoprocessorServiceCall call = request.getCall();
    String serviceName = call.getServiceName();
    String methodName = call.getMethodName();
    if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {
      throw new UnknownProtocolException(null,
        "No registered master coprocessor service found for name "+serviceName);
    }

    Service service = master.coprocessorServiceHandlers.get(serviceName);
    Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
    Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
    if (methodDesc == null) {
      throw new UnknownProtocolException(service.getClass(),
        "Unknown method "+methodName+" called on master service "+serviceName);
    }

    //invoke the method
    Message.Builder builderForType = service.getRequestPrototype(methodDesc).newBuilderForType();
    ProtobufUtil.mergeFrom(builderForType, call.getRequest());
    Message execRequest = builderForType.build();
    final Message.Builder responseBuilder =
        service.getResponsePrototype(methodDesc).newBuilderForType();
    service.callMethod(methodDesc, execController, execRequest, new RpcCallback<Message>() {
      @Override
      public void run(Message message) {
        if (message != null) {
          responseBuilder.mergeFrom(message);
        }
      }
    });
    Message execResult = responseBuilder.build();

    if (execController.getFailedOn() != null) {
      throw execController.getFailedOn();
    }
    ClientProtos.CoprocessorServiceResponse.Builder builder =
      ClientProtos.CoprocessorServiceResponse.newBuilder();
    builder.setRegion(RequestConverter.buildRegionSpecifier(
      RegionSpecifierType.REGION_NAME, HConstants.EMPTY_BYTE_ARRAY));
    builder.setValue(
      builder.getValueBuilder().setName(execResult.getClass().getName())
        .setValue(execResult.toByteString()));
    return builder.build();
  } catch (IOException ie) {
    throw new ServiceException(ie);
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:55,代码来源:MasterRpcServices.java


示例4: execRegionServerService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
public CoprocessorServiceResponse execRegionServerService(
    @SuppressWarnings("UnusedParameters") final RpcController controller,
    final CoprocessorServiceRequest serviceRequest) throws ServiceException {
  try {
    ServerRpcController serviceController = new ServerRpcController();
    CoprocessorServiceCall call = serviceRequest.getCall();
    String serviceName = call.getServiceName();
    String methodName = call.getMethodName();
    if (!coprocessorServiceHandlers.containsKey(serviceName)) {
      throw new UnknownProtocolException(null,
          "No registered coprocessor service found for name " + serviceName);
    }
    Service service = coprocessorServiceHandlers.get(serviceName);
    Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
    Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
    if (methodDesc == null) {
      throw new UnknownProtocolException(service.getClass(),
          "Unknown method " + methodName + " called on service " + serviceName);
    }
    Message.Builder builderForType = service.getRequestPrototype(methodDesc).newBuilderForType();
    ProtobufUtil.mergeFrom(builderForType, call.getRequest());
    Message request = builderForType.build();
    final Message.Builder responseBuilder =
        service.getResponsePrototype(methodDesc).newBuilderForType();
    service.callMethod(methodDesc, serviceController, request, new RpcCallback<Message>() {
      @Override public void run(Message message) {
        if (message != null) {
          responseBuilder.mergeFrom(message);
        }
      }
    });
    IOException exception = ResponseConverter.getControllerException(serviceController);
    if (exception != null) {
      throw exception;
    }
    Message execResult = responseBuilder.build();
    ClientProtos.CoprocessorServiceResponse.Builder builder =
        ClientProtos.CoprocessorServiceResponse.newBuilder();
    builder.setRegion(RequestConverter
        .buildRegionSpecifier(RegionSpecifierType.REGION_NAME, HConstants.EMPTY_BYTE_ARRAY));
    builder.setValue(builder.getValueBuilder().setName(execResult.getClass().getName())
        .setValue(execResult.toByteString()));
    return builder.build();
  } catch (IOException ie) {
    throw new ServiceException(ie);
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:48,代码来源:HRegionServer.java


示例5: execService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
@Override public Message execService(RpcController controller, CoprocessorServiceCall call)
    throws IOException {
  String serviceName = call.getServiceName();
  String methodName = call.getMethodName();
  if (!coprocessorServiceHandlers.containsKey(serviceName)) {
    throw new UnknownProtocolException(null,
        "No registered coprocessor service found for name " + serviceName + " in region " + Bytes
            .toStringBinary(getRegionInfo().getRegionName()));
  }

  Service service = coprocessorServiceHandlers.get(serviceName);
  Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
  Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
  if (methodDesc == null) {
    throw new UnknownProtocolException(service.getClass(),
        "Unknown method " + methodName + " called on service " + serviceName + " in region "
            + Bytes.toStringBinary(getRegionInfo().getRegionName()));
  }

  Message.Builder builder = service.getRequestPrototype(methodDesc).newBuilderForType();
  ProtobufUtil.mergeFrom(builder, call.getRequest());
  Message request = builder.build();

  if (coprocessorHost != null) {
    request = coprocessorHost.preEndpointInvocation(service, methodName, request);
  }

  final Message.Builder responseBuilder =
      service.getResponsePrototype(methodDesc).newBuilderForType();
  service.callMethod(methodDesc, controller, request, new RpcCallback<Message>() {
    @Override public void run(Message message) {
      if (message != null) {
        responseBuilder.mergeFrom(message);
      }
    }
  });

  if (coprocessorHost != null) {
    coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);
  }

  IOException exception = ResponseConverter.getControllerException(controller);
  if (exception != null) {
    throw exception;
  }

  return responseBuilder.build();
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:49,代码来源:HRegion.java


示例6: execMasterService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
@Override
public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,
    final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {
  try {
    master.checkInitialized();
    ServerRpcController execController = new ServerRpcController();

    ClientProtos.CoprocessorServiceCall call = request.getCall();
    String serviceName = call.getServiceName();
    String methodName = call.getMethodName();
    if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {
      throw new UnknownProtocolException(null,
        "No registered master coprocessor service found for name "+serviceName);
    }

    Service service = master.coprocessorServiceHandlers.get(serviceName);
    Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
    Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
    if (methodDesc == null) {
      throw new UnknownProtocolException(service.getClass(),
        "Unknown method "+methodName+" called on master service "+serviceName);
    }

    //invoke the method
    Message execRequest = service.getRequestPrototype(methodDesc).newBuilderForType()
        .mergeFrom(call.getRequest()).build();
    final Message.Builder responseBuilder =
        service.getResponsePrototype(methodDesc).newBuilderForType();
    service.callMethod(methodDesc, execController, execRequest, new RpcCallback<Message>() {
      @Override
      public void run(Message message) {
        if (message != null) {
          responseBuilder.mergeFrom(message);
        }
      }
    });
    Message execResult = responseBuilder.build();

    if (execController.getFailedOn() != null) {
      throw execController.getFailedOn();
    }
    ClientProtos.CoprocessorServiceResponse.Builder builder =
      ClientProtos.CoprocessorServiceResponse.newBuilder();
    builder.setRegion(RequestConverter.buildRegionSpecifier(
      RegionSpecifierType.REGION_NAME, HConstants.EMPTY_BYTE_ARRAY));
    builder.setValue(
      builder.getValueBuilder().setName(execResult.getClass().getName())
        .setValue(execResult.toByteString()));
    return builder.build();
  } catch (IOException ie) {
    throw new ServiceException(ie);
  }
}
 
开发者ID:grokcoder,项目名称:pbase,代码行数:54,代码来源:MasterRpcServices.java


示例7: execRegionServerService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
public CoprocessorServiceResponse execRegionServerService(final RpcController controller,
                                                          final CoprocessorServiceRequest serviceRequest) throws ServiceException {
    try {
        ServerRpcController execController = new ServerRpcController();
        CoprocessorServiceCall call = serviceRequest.getCall();
        String serviceName = call.getServiceName();
        String methodName = call.getMethodName();
        if (!coprocessorServiceHandlers.containsKey(serviceName)) {
            throw new UnknownProtocolException(null,
                    "No registered coprocessor service found for name " + serviceName);
        }
        Service service = coprocessorServiceHandlers.get(serviceName);
        Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
        Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
        if (methodDesc == null) {
            throw new UnknownProtocolException(service.getClass(), "Unknown method " + methodName
                    + " called on service " + serviceName);
        }
        Message request =
                service.getRequestPrototype(methodDesc).newBuilderForType().mergeFrom(call.getRequest())
                        .build();
        final Message.Builder responseBuilder =
                service.getResponsePrototype(methodDesc).newBuilderForType();
        service.callMethod(methodDesc, controller, request, new RpcCallback<Message>() {
            @Override
            public void run(Message message) {
                if (message != null) {
                    responseBuilder.mergeFrom(message);
                }
            }
        });
        Message execResult = responseBuilder.build();
        if (execController.getFailedOn() != null) {
            throw execController.getFailedOn();
        }
        ClientProtos.CoprocessorServiceResponse.Builder builder =
                ClientProtos.CoprocessorServiceResponse.newBuilder();
        builder.setRegion(RequestConverter.buildRegionSpecifier(RegionSpecifierType.REGION_NAME,
                HConstants.EMPTY_BYTE_ARRAY));
        builder.setValue(builder.getValueBuilder().setName(execResult.getClass().getName())
                .setValue(execResult.toByteString()));
        return builder.build();
    } catch (IOException ie) {
        throw new ServiceException(ie);
    }
}
 
开发者ID:grokcoder,项目名称:pbase,代码行数:47,代码来源:HRegionServer.java


示例8: execService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
/**
 * Executes a single protocol buffer coprocessor endpoint {@link Service} method using
 * the registered protocol handlers.  {@link Service} implementations must be registered via the
 * {@link HRegion#registerService(com.google.protobuf.Service)}
 * method before they are available.
 *
 * @param controller an {@code RpcController} implementation to pass to the invoked service
 * @param call       a {@code CoprocessorServiceCall} instance identifying the service, method,
 *                   and parameters for the method invocation
 * @return a protocol buffer {@code Message} instance containing the method's result
 * @throws IOException if no registered service handler is found or an error
 *                     occurs during the invocation
 * @see org.apache.hadoop.hbase.regionserver.HRegion#registerService(com.google.protobuf.Service)
 */
public Message execService(RpcController controller, CoprocessorServiceCall call)
        throws IOException {
    String serviceName = call.getServiceName();
    String methodName = call.getMethodName();
    if (!coprocessorServiceHandlers.containsKey(serviceName)) {
        throw new UnknownProtocolException(null,
                "No registered coprocessor service found for name " + serviceName +
                        " in region " + Bytes.toStringBinary(getRegionName()));
    }

    Service service = coprocessorServiceHandlers.get(serviceName);
    Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
    Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
    if (methodDesc == null) {
        throw new UnknownProtocolException(service.getClass(),
                "Unknown method " + methodName + " called on service " + serviceName +
                        " in region " + Bytes.toStringBinary(getRegionName()));
    }

    Message request = service.getRequestPrototype(methodDesc).newBuilderForType()
            .mergeFrom(call.getRequest()).build();

    if (coprocessorHost != null) {
        request = coprocessorHost.preEndpointInvocation(service, methodName, request);
    }

    final Message.Builder responseBuilder =
            service.getResponsePrototype(methodDesc).newBuilderForType();
    service.callMethod(methodDesc, controller, request, new RpcCallback<Message>() {
        @Override
        public void run(Message message) {
            if (message != null) {
                responseBuilder.mergeFrom(message);
            }
        }
    });

    if (coprocessorHost != null) {
        coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);
    }

    return responseBuilder.build();
}
 
开发者ID:grokcoder,项目名称:pbase,代码行数:58,代码来源:HRegion.java


示例9: execMasterService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
@Override
public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,
    final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {
  try {
    ServerRpcController execController = new ServerRpcController();

    ClientProtos.CoprocessorServiceCall call = request.getCall();
    String serviceName = call.getServiceName();
    String methodName = call.getMethodName();
    if (!coprocessorServiceHandlers.containsKey(serviceName)) {
      throw new UnknownProtocolException(null,
          "No registered master coprocessor service found for name "+serviceName);
    }

    Service service = coprocessorServiceHandlers.get(serviceName);
    Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
    Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
    if (methodDesc == null) {
      throw new UnknownProtocolException(service.getClass(),
          "Unknown method "+methodName+" called on master service "+serviceName);
    }

    //invoke the method
    Message execRequest = service.getRequestPrototype(methodDesc).newBuilderForType()
        .mergeFrom(call.getRequest()).build();
    final Message.Builder responseBuilder =
        service.getResponsePrototype(methodDesc).newBuilderForType();
    service.callMethod(methodDesc, execController, execRequest, new RpcCallback<Message>() {
      @Override
      public void run(Message message) {
        if (message != null) {
          responseBuilder.mergeFrom(message);
        }
      }
    });
    Message execResult = responseBuilder.build();

    if (execController.getFailedOn() != null) {
      throw execController.getFailedOn();
    }
    ClientProtos.CoprocessorServiceResponse.Builder builder =
        ClientProtos.CoprocessorServiceResponse.newBuilder();
    builder.setRegion(RequestConverter.buildRegionSpecifier(
        RegionSpecifierType.REGION_NAME, HConstants.EMPTY_BYTE_ARRAY));
    builder.setValue(
        builder.getValueBuilder().setName(execResult.getClass().getName())
            .setValue(execResult.toByteString()));
    return builder.build();
  } catch (IOException ie) {
    throw new ServiceException(ie);
  }
}
 
开发者ID:tenggyut,项目名称:HIndex,代码行数:53,代码来源:HMaster.java


示例10: execService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
/**
 * Executes a single protocol buffer coprocessor endpoint {@link Service} method using
 * the registered protocol handlers.  {@link Service} implementations must be registered via the
 * {@link HRegion#registerService(com.google.protobuf.Service)}
 * method before they are available.
 *
 * @param controller an {@code RpcContoller} implementation to pass to the invoked service
 * @param call a {@code CoprocessorServiceCall} instance identifying the service, method,
 *     and parameters for the method invocation
 * @return a protocol buffer {@code Message} instance containing the method's result
 * @throws IOException if no registered service handler is found or an error
 *     occurs during the invocation
 * @see org.apache.hadoop.hbase.regionserver.HRegion#registerService(com.google.protobuf.Service)
 */
public Message execService(RpcController controller, CoprocessorServiceCall call)
    throws IOException {
  String serviceName = call.getServiceName();
  String methodName = call.getMethodName();
  if (!coprocessorServiceHandlers.containsKey(serviceName)) {
    throw new UnknownProtocolException(null,
        "No registered coprocessor service found for name "+serviceName+
        " in region "+Bytes.toStringBinary(getRegionName()));
  }

  Service service = coprocessorServiceHandlers.get(serviceName);
  Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
  Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
  if (methodDesc == null) {
    throw new UnknownProtocolException(service.getClass(),
        "Unknown method "+methodName+" called on service "+serviceName+
            " in region "+Bytes.toStringBinary(getRegionName()));
  }

  Message request = service.getRequestPrototype(methodDesc).newBuilderForType()
      .mergeFrom(call.getRequest()).build();

  if (coprocessorHost != null) {
    request = coprocessorHost.preEndpointInvocation(service, methodName, request);
  }

  final Message.Builder responseBuilder =
      service.getResponsePrototype(methodDesc).newBuilderForType();
  service.callMethod(methodDesc, controller, request, new RpcCallback<Message>() {
    @Override
    public void run(Message message) {
      if (message != null) {
        responseBuilder.mergeFrom(message);
      }
    }
  });

  if (coprocessorHost != null) {
    coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);
  }

  return responseBuilder.build();
}
 
开发者ID:tenggyut,项目名称:HIndex,代码行数:58,代码来源:HRegion.java


示例11: execMasterService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
@Override
public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,
    final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {
  try {
    master.checkInitialized();
    ServerRpcController execController = new ServerRpcController();

    ClientProtos.CoprocessorServiceCall call = request.getCall();
    String serviceName = call.getServiceName();
    String methodName = call.getMethodName();
    if (!master.coprocessorServiceHandlers.containsKey(serviceName)) {
      throw new UnknownProtocolException(null,
        "No registered Master Coprocessor Endpoint found for " + serviceName +
        ". Has it been enabled?");
    }

    com.google.protobuf.Service service = master.coprocessorServiceHandlers.get(serviceName);
    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =
        CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);

    com.google.protobuf.Message execRequest =
        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());
    final com.google.protobuf.Message.Builder responseBuilder =
        service.getResponsePrototype(methodDesc).newBuilderForType();
    service.callMethod(methodDesc, execController, execRequest,
        new com.google.protobuf.RpcCallback<com.google.protobuf.Message>() {
      @Override
      public void run(com.google.protobuf.Message message) {
        if (message != null) {
          responseBuilder.mergeFrom(message);
        }
      }
    });
    com.google.protobuf.Message execResult = responseBuilder.build();
    if (execController.getFailedOn() != null) {
      throw execController.getFailedOn();
    }
    return CoprocessorRpcUtils.getResponse(execResult, HConstants.EMPTY_BYTE_ARRAY);
  } catch (IOException ie) {
    throw new ServiceException(ie);
  }
}
 
开发者ID:apache,项目名称:hbase,代码行数:44,代码来源:MasterRpcServices.java


示例12: execRegionServerService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
public CoprocessorServiceResponse execRegionServerService(
    @SuppressWarnings("UnusedParameters") final RpcController controller,
    final CoprocessorServiceRequest serviceRequest) throws ServiceException {
  try {
    ServerRpcController serviceController = new ServerRpcController();
    CoprocessorServiceCall call = serviceRequest.getCall();
    String serviceName = call.getServiceName();
    com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);
    if (service == null) {
      throw new UnknownProtocolException(null, "No registered coprocessor executorService found for " +
          serviceName);
    }
    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =
        service.getDescriptorForType();

    String methodName = call.getMethodName();
    com.google.protobuf.Descriptors.MethodDescriptor methodDesc =
        serviceDesc.findMethodByName(methodName);
    if (methodDesc == null) {
      throw new UnknownProtocolException(service.getClass(), "Unknown method " + methodName +
          " called on executorService " + serviceName);
    }

    com.google.protobuf.Message request =
        CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());
    final com.google.protobuf.Message.Builder responseBuilder =
        service.getResponsePrototype(methodDesc).newBuilderForType();
    service.callMethod(methodDesc, serviceController, request,
        new com.google.protobuf.RpcCallback<com.google.protobuf.Message>() {
      @Override
      public void run(com.google.protobuf.Message message) {
        if (message != null) {
          responseBuilder.mergeFrom(message);
        }
      }
    });
    IOException exception = CoprocessorRpcUtils.getControllerException(serviceController);
    if (exception != null) {
      throw exception;
    }
    return CoprocessorRpcUtils.getResponse(responseBuilder.build(), HConstants.EMPTY_BYTE_ARRAY);
  } catch (IOException ie) {
    throw new ServiceException(ie);
  }
}
 
开发者ID:apache,项目名称:hbase,代码行数:46,代码来源:HRegionServer.java


示例13: execService

import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; //导入依赖的package包/类
/**
 * Executes a single protocol buffer coprocessor endpoint {@link Service} method using
 * the registered protocol handlers.  {@link Service} implementations must be registered via the
 * {@link #registerService(com.google.protobuf.Service)}
 * method before they are available.
 *
 * @param controller an {@code RpcContoller} implementation to pass to the invoked service
 * @param call a {@code CoprocessorServiceCall} instance identifying the service, method,
 *     and parameters for the method invocation
 * @return a protocol buffer {@code Message} instance containing the method's result
 * @throws IOException if no registered service handler is found or an error
 *     occurs during the invocation
 * @see #registerService(com.google.protobuf.Service)
 */
public com.google.protobuf.Message execService(com.google.protobuf.RpcController controller,
    CoprocessorServiceCall call) throws IOException {
  String serviceName = call.getServiceName();
  com.google.protobuf.Service service = coprocessorServiceHandlers.get(serviceName);
  if (service == null) {
    throw new UnknownProtocolException(null, "No registered coprocessor service found for " +
        serviceName + " in region " + Bytes.toStringBinary(getRegionInfo().getRegionName()));
  }
  com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();

  String methodName = call.getMethodName();
  com.google.protobuf.Descriptors.MethodDescriptor methodDesc =
      CoprocessorRpcUtils.getMethodDescriptor(methodName, serviceDesc);

  com.google.protobuf.Message.Builder builder =
      service.getRequestPrototype(methodDesc).newBuilderForType();

  org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(builder,
      call.getRequest().toByteArray());
  com.google.protobuf.Message request =
      CoprocessorRpcUtils.getRequest(service, methodDesc, call.getRequest());

  if (coprocessorHost != null) {
    request = coprocessorHost.preEndpointInvocation(service, methodName, request);
  }

  final com.google.protobuf.Message.Builder responseBuilder =
      service.getResponsePrototype(methodDesc).newBuilderForType();
  service.callMethod(methodDesc, controller, request,
      new com.google.protobuf.RpcCallback<com.google.protobuf.Message>() {
    @Override
    public void run(com.google.protobuf.Message message) {
      if (message != null) {
        responseBuilder.mergeFrom(message);
      }
    }
  });

  if (coprocessorHost != null) {
    coprocessorHost.postEndpointInvocation(service, methodName, request, responseBuilder);
  }
  IOException exception =
      org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.getControllerException(controller);
  if (exception != null) {
    throw exception;
  }

  return responseBuilder.build();
}
 
开发者ID:apache,项目名称:hbase,代码行数:64,代码来源:HRegion.java



注:本文中的org.apache.hadoop.hbase.exceptions.UnknownProtocolException类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Hashon类代码示例发布时间:2022-05-22
下一篇:
Java Strings类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap