Google Natural Language fails on LOCALHOST. JAVA: DEADLINE EXCEEDED ERROR

109 Views Asked by At

I just set up the Google Natural Language client in my code. Everything works fine on my local system, Google Natural Language API answers in seconds.

BUT when I try to run my code on Tomcat(localhost), the request terminates after 1 min with DEADLINE EXCEEDED ERROR while doing a really simple test call.

Here is some code:

public static List<Entity> getLanguageEntities(String input, InputStream credentialInputStream) {
    try {
        // Instantiates a client
        LanguageServiceClient language = getClient(credentialInputStream);

        // build document
        Document doc = Document.newBuilder().setContent(input).setType(Type.PLAIN_TEXT).build();

        //HERE IT BREAKS..
        AnalyzeEntitiesResponse analyzeEntitiesResponse = language.analyzeEntities(doc, EncodingType.NONE);

        List<Entity> entityList = analyzeEntitiesResponse.getEntitiesList();

        return entityList;

    }catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

public static LanguageServiceClient getClient(InputStream credentialInputStream) throws Exception {

    final LanguageServiceSettings languageServiceSettings;

    final GoogleCredentials myCredentials = GoogleCredentials
                .fromStream(credentialInputStream)
                .createScoped(
                        Collections.singleton("https://www.googleapis.com/auth/cloud-platform")
                );
        final CredentialsProvider credentialsProvider = FixedCredentialsProvider.create(myCredentials);

        final InstantiatingChannelProvider channelProvider = LanguageServiceSettings
                .defaultChannelProviderBuilder()
                .setCredentialsProvider(credentialsProvider)
                .build();
        languageServiceSettings = LanguageServiceSettings
                .defaultBuilder()
                .setChannelProvider(channelProvider)
                .build();

    // Create Google API client
    LanguageServiceClient languageServiceClient = LanguageServiceClient.create(languageServiceSettings);

    return languageServiceClient;
}
0

There are 0 best solutions below