Amazon Lex UnknownHostException: runtime.lex.eu-west-1.amazonaws.com

Я написал простую программу для проверки того, могу ли я разговаривать со своим ботом с помощью API Amazon Lex Java. Когда я запускаю его, я получаю UnknownHostException: runtime.lex.eu-west-1.amazonaws.com.

> Exception in thread "main" com.amazonaws.SdkClientException: Unable to execute HTTP request: runtime.lex.eu-west-1.amazonaws.com
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1114)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1064)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
    at com.amazonaws.services.lexruntime.AmazonLexRuntimeClient.doInvoke(AmazonLexRuntimeClient.java:531)
    at com.amazonaws.services.lexruntime.AmazonLexRuntimeClient.invoke(AmazonLexRuntimeClient.java:507)
    at com.amazonaws.services.lexruntime.AmazonLexRuntimeClient.executePostText(AmazonLexRuntimeClient.java:471)
    at com.amazonaws.services.lexruntime.AmazonLexRuntimeClient.postText(AmazonLexRuntimeClient.java:447)
    at ChatBot.ChatbotMain.main(ChatbotMain.java:17)
Caused by: java.net.UnknownHostException: runtime.lex.eu-west-1.amazonaws.com
    at java.net.InetAddress.getAllByName0(InetAddress.java:1280)
    at java.net.InetAddress.getAllByName(InetAddress.java:1192)
    at java.net.InetAddress.getAllByName(InetAddress.java:1126)
    at com.amazonaws.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:27)
    at com.amazonaws.http.DelegatingDnsResolver.resolve(DelegatingDnsResolver.java:38)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:111)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.amazonaws.http.conn.ClientConnectionManagerFactory$Handler.invoke(ClientConnectionManagerFactory.java:76)
    at com.amazonaws.http.conn.$Proxy8.connect(Unknown Source)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
    at com.amazonaws.http.apache.client.impl.SdkHttpClient.execute(SdkHttpClient.java:72)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1236)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056)
    ... 11 more

Кто-нибудь теперь, как это решить? Возможно ли, что я не могу отправить HTTP-запрос из моей сети компании?

Вот код:

package ChatBot;

import com.amazonaws.regions.Regions;
import com.amazonaws.services.lexruntime.AmazonLexRuntime;
import com.amazonaws.services.lexruntime.AmazonLexRuntimeClientBuilder;
import com.amazonaws.services.lexruntime.model.PostTextRequest;
import com.amazonaws.services.lexruntime.model.PostTextResult;

public class ChatbotMain {
    public static void main(String[]args){
        AmazonLexRuntime client = AmazonLexRuntimeClientBuilder.standard().withRegion(Regions.US_EAST_1).build();
        PostTextRequest textRequest= new PostTextRequest();
        textRequest.setBotName("BookTrip");
        textRequest.setBotAlias("BookTripBot");
        textRequest.setUserId("christester");
        textRequest.setInputText("someText");
        PostTextResult result = client.postText(textRequest);
        System.out.println(result.getDialogState());
    }
}

Большое спасибо,

Крис


person Chris Hoffmann    schedule 22.11.2017    source источник
comment
Кажется, что у вас что-то неправильно настроено в ваших учетных данных, как я вижу в вашем коде, вы установили регион на us-east-1, но в исключении, которое вы указываете на eu-west-1, нет?   -  person imTachu    schedule 30.11.2017
comment
извините за путаницу, это были разные попытки. проблема заключалась в том, что сеть моей компании не позволяет общаться с внешними веб-сервисами. Для этого мне нужно использовать прокси.   -  person Chris Hoffmann    schedule 04.12.2017


Ответы (1)


проблема заключалась в том, что сеть моей компании не позволяет общаться с внешними веб-сервисами. Для этого мне нужно использовать прокси или шлюз

person Chris Hoffmann    schedule 04.12.2017