Попытка получить информацию о координатах с помощью Google Place API, но метод .wait () выдает ошибку «Rate Limited Dispatcher» - PullRequest
0 голосов
/ 12 мая 2019

Моя цель - получить информацию о широте и долготе по поисковому адресу; например, «Париж» - это элемент поиска, а Google API дает мне широту и долготу на карте Google.

Я использую Java, EJB, JSF и JBoss.

Я пытался сделать EJB, код можно увидеть ниже:

package service;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.maps.GeoApiContext;
import com.google.maps.GeocodingApi;
import com.google.maps.GeocodingApiRequest;
import com.google.maps.errors.ApiException;
import com.google.maps.model.GeocodingResult;

import javax.ejb.Stateless;
import java.io.IOException;

@Stateless
public class PlaceService {
    public String testPlacement() throws InterruptedException, ApiException, IOException {

        GeoApiContext context = new GeoApiContext.Builder()
                .apiKey("AI.....")
                .build();

        GeocodingResult[] results = new GeocodingResult[0];

        GeocodingApiRequest req = GeocodingApi.newRequest(context).address("Paris");

        results = req.await();

        Gson gson = new GsonBuilder().setPrettyPrinting().create();

        return gson.toJson(results[0].addressComponents);
    }
}

А это мои зависимости от Maven:

 <dependency>
            <groupId>com.google.maps</groupId>
            <artifactId>google-maps-services</artifactId>
            <version>0.9.3</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId> gson</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.9.1</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>retrofit</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>converter-moshi</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.moshi</groupId>
            <artifactId>moshi</artifactId>
            <version>1.5.0</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okio</groupId>
            <artifactId>okio</artifactId>
            <version>1.13.0</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>logging-interceptor</artifactId>
            <version>3.9.1</version>
        </dependency>

Это дает мне эти строки кодов ошибок:

 ERROR [stderr] (Rate Limited Dispatcher) Exception in thread "Rate Limited Dispatcher" java.lang.AbstractMethodError: com.google.maps.internal.OkHttpPendingResult$1.onResponse(Lokhttp3/Response;)V
 ERROR [stderr] (Rate Limited Dispatcher)   at okhttp3.RealCall$AsyncCall.execute(RealCall.java:133)
 ERROR [stderr] (Rate Limited Dispatcher)   at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:33)
ERROR [stderr] (Rate Limited Dispatcher)    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
ERROR [stderr] (Rate Limited Dispatcher)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
ERROR [stderr] (Rate Limited Dispatcher)    at java.lang.Thread.run(Thread.java:748)
...