当前位置: 首页 > 知识库问答 >
问题:

使用spring cloud starter gateway和spring boot 2.4.0及以上版本的未知后异常

梁丘经艺
2023-03-14

有关https://github.com/reactor/reactor-netty/issues/1431.

Spring云网关服务器正确启动,但通过网关的请求失败,出现以下异常:

java.net.UnknownHostException: failed to resolve 'myserver' after 4 queries
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1013)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ? org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
|_ checkpoint ? org.springframework.cloud.sleuth.instrument.web.TraceWebFilter [DefaultWebFilterChain]
|_ checkpoint ? org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
|_ checkpoint ? HTTP GET "/service/api/applications/123" [ExceptionHandlingWebHandler]
Stack trace:
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1013)
at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:966)
at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:414)
at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:601)
at io.netty.resolver.dns.DnsResolveContext.access$400(DnsResolveContext.java:63)
at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:458)
.....

Works correctly when downgrading spring boot.

共有2个答案

尉迟远
2023-03-14

如果不想更改创建HttpClientbean的逻辑,可以添加一个HttpClientCustomizer:

import org.springframework.cloud.gateway.config.HttpClientCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import io.netty.resolver.DefaultAddressResolverGroup;
import reactor.netty.http.client.HttpClient;

@Configuration
public class HttpClientResolverFixConfig {

    @Bean
    public HttpClientCustomizer httpClientResolverCustomizer() {
        return new HttpClientCustomizer() {

            @Override
            public HttpClient customize(HttpClient httpClient) {
                return httpClient.resolver(DefaultAddressResolverGroup.INSTANCE);
            }
        };
    }

}
微生城
2023-03-14

通过添加以下bean定义修复:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import io.netty.resolver.DefaultAddressResolverGroup;
import reactor.netty.http.client.HttpClient;

@Configuration
public class TempFixConfig {

    @Bean
    public HttpClient webClient() {
        return HttpClient.create().resolver(DefaultAddressResolverGroup.INSTANCE);
    }
}
 类似资料:
  • 问题内容: 我有几个用Swift 2.2编写,用Xcode 7.3编译的应用程序,这些应用程序在App Store上实时运行。这些应用程序利用推送通知,并且在iOS 9.3和更早版本中可以正常运行。 但是,在已升级到iOS 10的设备上,我的应用程序未收到任何推送通知。仍在运行iOS 9的设备仍在接收通知。 考虑到可能是证书或权利问题,我尝试了以下操作:将我的一个应用程序升级到Swift 2.3,

  • 所以我按照数字海洋的本教程,了解如何在ubuntu上安装tomcat,说明就可以了,我设法让它启动并运行。接下来,我现在想把它添加/安装到我的eclipse EE中。当我指定路径来查找tomcat安装/opt/tomcat i get. 指定了未知版本的Tomcat。 我在论坛上搜索并查看了类似的帖子,其中大多数帖子建议我找到usr/share/tomcat,但当我查看我的目录时,没有这样的目录。

  • 我正在尝试从默认的android迁移到AppCompat-22.1中包含的新的android。到目前为止,我只需要导入包就可以使用它。 但我该怎么做呢?例如,更改正/负按钮颜色、标题颜色、消息颜色和背景颜色?

  • 我想开发一个部署目标为iOS 6.0的应用程序。如果我只使用Swift,它会工作吗?还是我也需要编写Objective-C代码?

  • 在Android 19及以下版本上使用JunitParams运行程序时,我看到了一个异常。 使用最新的Android测试支持库编写简单的测试套件并在Android 19或更低版本上执行 下面的测试套件将重现这个问题 测试应该执行并通过。 不运行测试,因为"找不到测试" 我检查了日志,我看到以下异常发生。 下面是我的文件。

  • 我正在尝试在我的应用程序中实现通话录音,但由于受限权限CAPTURE_AUDIO_OUTPUT(只能授予系统应用程序),我无法录制其他人的音频。我在Play store Cube ACR上找到了一个应用程序,可以清楚地录制双方的音频。如果谷歌禁用了通话录音,那么它如何录制通话。有什么解决方法可以记录我缺失的通话吗?