私はこれを序文にします:私は開発者ではありません。私は現在、複数のシステム(元々はアウトソーシング開発者によって開発されたアプリケーション)を統合するためにMulesoftを使用しています。アプリケーションの一部は、システム全体で共通するレコードをマージすることです。これを行うには、関連する住所にレコード名とジオコードを使用しています。先週までこれはうまくいきました。今、アプリケーションのこの部分が実行されているときにエラーが発生します。失敗した特定のコールからのデバッグログは次のとおりです。問題は、私は何の問題もなく、同じアドレスのマニュアル電話をかけることができますよう、ジオコーディングAPI自体にではないようですGoogleジオコーディングAPIが500内部サーバーエラーを返す
[2016-10-11 16:02:06.163] DEBUG com.ning.http.client.providers.grizzly.AsyncHttpClientFilter [[tbosa-rpm].DefaultSftpConnector.receiver.01]: (t:null) REQUEST: HttpRequestPacket (method=GET
url=/maps/api/geocode/json
query=key=[REMOVED]&address=%[REMOVED]%20[REMOVED]%20[REMOVED]%2CSPRING%20BRANCH%2CTX%22
protocol=HTTP/1.1
content-length=-1
headers=[
MULE_CORRELATION_SEQUENCE=969
MULE_CORRELATION_ID=bd4249f0-8fcb-11e6-9620-12fd3e455356
MULE_CORRELATION_GROUP_SIZE=4375
Host=maps.googleapis.com:443
User-Agent=AHC/1.0
Connection=keep-alive
Accept=*/*]
)
[2016-10-11 16:02:06.164] DEBUG org.mule.module.http.internal.HttpMessageLogger [[tbosa-rpm].DefaultSftpConnector.receiver.01]: (t:null) REQUESTER
GET /maps/api/geocode/json?key=[REMOVED]&address=%[REMOVED]%20[REMOVED]%20[REMOVED]%2CSPRING%20BRANCH%2CTX%22 HTTP/1.1
MULE_CORRELATION_SEQUENCE: 969
MULE_CORRELATION_ID: bd4249f0-8fcb-11e6-9620-12fd3e455356
MULE_CORRELATION_GROUP_SIZE: 4375
Host: maps.googleapis.com:443
User-Agent: AHC/1.0
Connection: keep-alive
Accept: */*
Content-Type: application/json; charset=UTF-8
[2016-10-11 16:02:07.684] DEBUG org.mule.module.http.internal.HttpMessageLogger [[tbosa-rpm].http.requester.GeocoderRequest.worker(1)]: (t:null) REQUESTER
HTTP/1.1 500 Internal Server Error
Content-Type: application/json; charset=UTF-8
Date: Tue, 11 Oct 2016 16:02:07 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, must-revalidate
Access-Control-Allow-Origin: *
Server: mafe
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"
Accept-Ranges: none
Vary: Accept-Language,Accept-Encoding
Transfer-Encoding: chunked
35
{
"results" : [],
"status" : "UNKNOWN_ERROR"
}
0
[2016-10-11 16:02:07.684] DEBUG com.ning.http.client.providers.grizzly.AhcEventFilter [[tbosa-rpm].http.requester.GeocoderRequest.worker(1)]: (t:null) RESPONSE: HttpResponsePacket (
status=500
reason=Internal Server Error
protocol=HTTP/1.1
content-length=-1
committed=false
headers=[
content-type=application/json; charset=UTF-8
date=Tue, 11 Oct 2016 16:02:07 GMT
pragma=no-cache
expires=Fri, 01 Jan 1990 00:00:00 GMT
cache-control=no-cache, must-revalidate
access-control-allow-origin=*
server=mafe
x-xss-protection=1; mode=block
x-frame-options=SAMEORIGIN
alt-svc=quic=":443"; ma=2592000; v="36,35,34,33,32"
accept-ranges=none
vary=Accept-Language,Accept-Encoding
transfer-encoding=chunked]
)
。接続が抑制されるので、1秒あたりのリクエストの制限を打ち負かすべきではありません。これは、APIコールを管理するアプリケーションのコードです。
<flow name="rpm-geocode-lookup" processingStrategy="synchronous">
<set-payload value="#[payload.addressLine1],#[payload.city],#[payload.state]" doc:name="Set Location"/>
<ee:cache cachingStrategy-ref="GeocoderCachingStrategy" doc:name="Geocoder Cache">
<json:object-to-json-transformer doc:name="Object to JSON"/>
<logger level="DEBUG" category="com.tbosa.esb.rpm" message="Making call to Geocoder for #[payload]" doc:name="Not Cached"/>
<http:request config-ref="GeocoderRequest" path="/geocode/json" method="GET" doc:name="Geocoder Request">
<http:request-builder>
<http:query-param paramName="key" value="${geocoder.key}"/>
<http:query-param paramName="address" value="#[payload]"/>
</http:request-builder>
</http:request>
<json:json-to-object-transformer returnClass="java.util.Map" doc:name="JSON to Object"/>
<choice doc:name="Choice">
<when expression="#[payload.status == 'OK' || payload.results.size() > 0]">
<set-payload value="#[new java.lang.String(payload.results[0].geometry.location.lat) + payload.results[0].geometry.location.lng]" doc:name="Latitude+Longitude"/>
</when>
<otherwise>
<logger message="Geocoder did not return any results. Result: #[payload]" level="WARN" category="com.tbosa.esb.rpm" doc:name="Logger"/>
<set-payload value="''" doc:name="Blank Value"/>
</otherwise>
</choice>
<expression-component doc:name="Expression">Thread.sleep(${geocoder.throttle.delay});</expression-component>
</ee:cache>
<exception-strategy ref="EmailExceptionStrategy" doc:name="Exceptions"/>
</flow>
アプリケーションは変更されていません。私たちは9ヶ月間それを成功させてきたので、どこに問題があるのか分かりません。私はMulesoftに関する問題に正直に傾いていますが、APIに問題があると私に伝えようとしています。思考?
ありがとうございます!同じ問題を抱えている他の誰かがチケットを提出しました。もちろん、Googleからの誰かが、それがSOPであると言って、ステータスコード500で戻ってくる人もいると答えました。 – Moody