@Override
    public ClientBuilderParams validateParams(ClientBuilderParams params) {
        if (ClientBuilderParamsUtil.isPreprocessorUri(params.uri()) &&
            params.options().clientPreprocessors().preprocessors().isEmpty()) {
            // - HttpClient may be created for an RPC-based client
            // - A default WebClient functions without preprocessors
            if (params.clientType() != HttpClient.class) {
                throw new IllegalArgumentException(
                        "At least one preprocessor must be specified for http-based clients " +
                        "with sessionProtocol '" + params.scheme().sessionProtocol() +
                        "' and clientType '" + params.clientType() + "'.");
            }
        }
        if (Clients.isUndefinedUri(params.uri()) && !"/".equals(params.absolutePathRef())) {
            throw new IllegalArgumentException(
                    "Cannot set a prefix path for clients created by 'WebClient.of().'");
        }
        return ClientFactory.super.validateParams(params);
    }
Returns a new {@link Bootstrap} for connecting to a {@link io.netty.channel.unix.DomainSocketAddress}.
The returned {@link Bootstrap} has its {@link ChannelFactory}, {@link AddressResolverGroup} and
socket options pre-configured.
core/src/main/java/com/linecorp/armeria/client/HttpClientFactory.java