[使用Google Maps Java API时的java.net.UnknownServiceException

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

我正在尝试通过以下Java代码访问Google Maps:

GeoApiContext context = new GeoApiContext.Builder().apiKey("API_KEY_HERE").build();
//Setting variables...
DistanceMatrix matrix = DistanceMatrixApi.newRequest(context).origins(origins).destinations(destinations).await();

调用await()会引发异常:

java.net.UnknownServiceException: Unable to find acceptable protocols. isFallback=false, modes=[ConnectionSpec(cipherSuites=[TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA], tlsVersions=[TLS_1_3, TLS_1_2], supportsTlsExtensions=true), ConnectionSpec()], supported protocols=[TLSv1]

我收集到的是来自Google Maps使用的OkHttp库,它与TLS版本有关,但是我不知道该怎么做。源代码中的所有测试用例都使用模拟Web服务器,并且没有指定真实服务器的示例,这使我相信它是在后台完成的。

有人使用示例代码在真实的Web服务器上使用Google Maps Java API吗?

java google-maps okhttp
1个回答
0
投票

您的JVM未配置为使用足够新的TLS版本。

supported protocols=[TLSv1]

请确保您的JVM是8或更高版本,并且是最新的。另外,请确保所有自定义安全提供程序(bouncycastle)都是最新的。

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