code: public B annotatedService(String pathPrefix, Object service,
                                Function<Service<HttpRequest, HttpResponse>,
                                        ? extends Service<HttpRequest, HttpResponse>> decorator,
                                Iterable<?> exceptionHandlersAndConverters) {
          requireNonNull(pathPrefix, "pathPrefix");
          requireNonNull(service, "service");
          requireNonNull(decorator, "decorator");
          requireNonNull(exceptionHandlersAndConverters, "exceptionHandlersAndConverters");
  
          final List<AnnotatedHttpServiceElement> elements =
                  AnnotatedHttpServiceFactory.find(pathPrefix, service, exceptionHandlersAndConverters);
          elements.forEach(e -> {
              Service<HttpRequest, HttpResponse> s = e.service();
              // Apply decorators which are specified in the service class.
              s = e.decorator().apply(s);
              // Apply decorators which are passed via annotatedService() methods.
              s = decorator.apply(s);
  
              // If there is a decorator, we should add one more decorator which handles an exception
              // raised from decorators.
              if (s != e.service()) {
                  s = e.service().exceptionHandlingDecorator().apply(s);
              }
              service(e.pathMapping(), s);
          });
          return self();
      }
docs: Binds the specified annotated service object under the specified path prefix.
  
  @param exceptionHandlersAndConverters an iterable object of {@link ExceptionHandlerFunction},
  {@link RequestConverterFunction} and/or
  {@link ResponseConverterFunction}