2013-07-22 49 views
0

我從Maxmind購買了GeoIP ISP數據庫的網站許可證,並決定在我的Google App Engine項目中實施它。Maxmind的Java API getOrg在Google App Engine中導致IOExceptions,但在標準Java中導致IOExceptions

我使用一個普通的Java項目測試了我自己的外部IP,它使用了相同的API/JAR,並且能夠將它解析到Comcast。

在Google App Engine中實現它一直很痛苦。使用相同的確切調用(我自己的外部IP),每當使用標準LookupService(從文件讀取)和OutOfBoundsArrayExceptions(每當使用基於內存的LookupService)時,都會收到各種IOException,特別是EOFExceptions。

一些具體信息: 數據庫文件大小不應該是一個問題。它約爲3mb左右。 你可以在這裏找到API來源:https://github.com/maxmind/geoip-api-java

我最終會找出這個問題,但它似乎是相當低級的,所以可能需要一些時間。我想知道是否有其他人有任何問題。

更新 - 我剛剛確認.dat文件的MD5更改,只要選中使用Commons Codec 1.8 DigestUtils.md5Hex。

它與工作文件的MD5不同。

+1

與您的問題沒有嚴格關係,但您是否知道GAE會爲請求(國家,地區,城市,城市經緯度)提供地理位置信息。請參閱https://developers.google.com/appengine/docs/java/#Request_Headers。 –

+0

我知道,但這在識別用戶的ISP方面並沒有什麼幫助。但是,感謝信息!如果我稍後需要,可能會派上用場。 – Zerkz

+0

更新!我剛剛確認使用Commons Codec 1.8 DigestUtils.md5Hex進行檢查時,.dat文件的MD5更改。 它與工作文件的MD5不同。 – Zerkz

回答

0

固定...

出於某種原因,有我在WEB-INF中的.dat文件顯著改變它。 MD5校驗和不一樣。

服用一個根上面有裝WEB-INF莫名其妙地躲過了文件,並驗證了MD5的改變我的「web應用」文件夾...

可能要提交與谷歌的錯誤這一個,或者我完全誤解了一些東西......

更新:在進一步的反省之後,我決定這可能是我的WEB-INF使用的文本集...... UTF-8。這是我能想到的唯一的事情。

相關問題