@ImportHttpServices 的分组客户端配了 base-url 为什么还报 URI with undefined scheme?组名、starter、默认组各是什么规则?这篇在 Spring Boot 4.0.8 上同一个调用逐个对照。
调用 UserClient.get(1):{team=blue, path=/up/users/1} (68 ms)
调用 OrderClient.get(2):{team=null, path=/up/orders/2} (3 ms)users 组配了 default-header,orders 组没有,收到的 X-Team 一个是 blue、一个是 null。
调用 UserClient.get(1):{path=/up/users/1, team=null} (55 ms)
调用 OrderClient.get(2):异常 IllegalArgumentException:URI with undefined scheme (0 ms)调用时抛 URI with undefined scheme,启动正常。
调用 UserClient.get(1):异常 IllegalArgumentException:URI with undefined scheme (7 ms)
调用 OrderClient.get(2):{path=/up/orders/2, team=null} (42 ms)属性组名少一个 s,启动日志干净,调用时才报错。
调用 UserClient.slow():异常 ResourceAccessException:I/O error on GET request for "http://127.0.0.1:9607/up/users/slow": Request cancelled (519 ms)
调用 UserClient.get(1):{path=/up/users/1, team=null} (34 ms)users 组 read-timeout=500ms,慢接口 519 ms 抛 ResourceAccessException。
调用 UserClient.get(1):{team=blue, path=/up/users/1} (57 ms)
调用 OrderClient.get(2):{team=blue, path=/up/orders/2} (2 ms)basePackageClasses 扫描的两个接口共用一份配置。
调用 UserClient.get(1):{team=null, path=/up/users/1} (68 ms)
调用 OrderClient.get(2):{team=null, path=/up/orders/2} (2 ms)不写 group 的接口按 default 组配置。
调用 UserClient.get(1):异常 IllegalArgumentException:URI with undefined scheme (12 ms) 调用 OrderClient.get(2):异常 IllegalArgumentException:URI with undefined scheme (0 ms)
只引 webmvc,属性不被应用。
调用 UserClient.get(1):异常 ResourceAccessException:I/O error on GET request for "/users/1": Connection refused (connect failed): /[0:0:0:0:0:0:0:1]:80 (125 ms) 调用 OrderClient.get(2):异常 ResourceAccessException:I/O error on GET request for "/orders/2": Connection refused (connect failed): /[0:0:0:0:0:0:0:1]:80 (1 ms) 启动日志里的 WARN/ERROR:ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolution
引 webclient 的 starter 而没有 restclient 的,base-url 也没被应用。