2016-10-11 12 views
0

私はこれを序文にします:私は開発者ではありません。私は現在、複数のシステム(元々はアウトソーシング開発者によって開発されたアプリケーション)を統合するために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() &gt; 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に問題があると私に伝えようとしています。思考?

答えて

1

500エラーは、リクエストの処理中にGoogle側で何か問題が発生したことを示します。少し遅れてリクエストをやり直しましたか?

どのGoogle IPアドレスがアプリケーションに当てられているか把握してください。アプリケーションを実行するマシンのtraceroute maps.googleapis.comping maps.googleapis.comを使用できます。

500エラーが続く場合、私はtracerouteとpingの結果、問題を示すサンプルHTTP要求、公開IPアドレス、およびプロジェクト番号を公開問題トラッカーに提出することをお勧めします。

https://code.google.com/p/gmaps-api-issues/

それが役に立てば幸い!

+0

ありがとうございます!同じ問題を抱えている他の誰かがチケットを提出しました。もちろん、Googleからの誰かが、それがSOPであると言って、ステータスコード500で戻ってくる人もいると答えました。 – Moody

関連する問題