UnknownHostException: eu-automl.googleapis.com 当从java应用中调用automl API时,出现未知的异常。

问题描述 投票:0回答:1

我试图调用API @ POST eu-automl.googleapis.com:443v1beta1projects{project_id}locationseumodels{model_id}:predictvia java应用程序,并得到以下错误-。

**Caused by: java.net.UnknownHostException: eu-automl.googleapis.com
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$2.lookupAllHostAddr(Unknown Source)
    at java.net.InetAddress.getAddressesFromNameService(Unknown Source)
    at java.net.InetAddress.getAllByName0(Unknown Source)
    at java.net.InetAddress.getAllByName(Unknown Source)
    at java.net.InetAddress.getAllByName(Unknown Source)
    at io.grpc.internal.DnsNameResolver$JdkAddressResolver.resolveAddress(DnsNameResolver.java:646)
    at io.grpc.internal.DnsNameResolver.resolveAll(DnsNameResolver.java:404)**

当我通过postman运行这个API时,它没有错误地通过了,调用这个API的代码。

        **CredentialsProvider credentialsProvider =
                   FixedCredentialsProvider.create(
                     ServiceAccountCredentials.fromStream(
                             new FileInputStream(key)));
        PredictionServiceSettings settings =
                   PredictionServiceSettings.newBuilder()
                  .setCredentialsProvider(credentialsProvider)
                  .setEndpoint("eu-automl.googleapis.com:443")
                  .build();
        try (PredictionServiceClient client = PredictionServiceClient.create(settings)) {
            // Get the full path of the model.
            ModelName name = ModelName.of(projectId, "eu", modelId);
            URL url = TablesPredict.class.getResource("predict.json");
            InputStreamReader reader = new InputStreamReader(new FileInputStream(url.getPath()), "ASCII");
            ExamplePayload.Builder builder = ExamplePayload.newBuilder();
            JsonFormat.parser().merge(reader, builder);
            ExamplePayload payload = builder.build();
            PredictRequest request =
                    PredictRequest.newBuilder()
                    .setName(name.toString())
                    .setPayload(payload)                    
                    .putParams("feature_importance", "true")
                    .build();
            PredictResponse response = client. predict(request);
}**

知道我漏了什么吗?

google-cloud-platform google-cloud-endpoints google-cloud-automl
1个回答
0
投票

在您分享的java代码中,我没有看到任何奇怪的地方,因为您正确地指定了所述的EU端点。在GCP中在java 文档。

你能检查一下你这边的防火墙配置是否有问题吗?你可以通过简单的ping端点来检查 eu-automl.googleapis.com

© www.soinside.com 2019 - 2024. All rights reserved.