我从Maxmind购买了GeoIP ISP数据库的站点许可证,并决定在我的谷歌应用程序引擎项目中实现它。
我用一个常规Java项目测试了我自己的外部IP,该项目使用了相同的API/JAR,并能够将其解析为Comcast。
在谷歌应用引擎中实现它一直很痛苦。使用相同的调用(我自己的外部IP),我收到了各种IOException,特别是每当使用标准LookupService(从文件读取)时的EOFEException,以及每当使用基于内存的LookupService时的OutOfBoundsArray Exception。
一些具体信息:数据库文件大小应该不是问题。大约3毫巴。您可以在这里找到开源的API:https://github.com/maxmind/geoip-api-java
我最终会弄清楚这个问题,但它似乎相当低,所以可能需要一些时间。我想知道是否还有其他人有任何问题。
更新-我刚刚确认了.dat文件的MD5更改,无论何时使用Commons Codec 1.8 DigestUtils.md5Hex.进行检查
它与工作文件的MD5不同。
已修复。。。
出于某种原因,在我的WEB-INF中有.dat文件会对它产生重大影响。MD5校验和不相同。
将其从上面的一个根目录移到我的"webapp"文件夹中,该文件夹包含WEB-INF,不知何故躲过了文件的更改和MD5验证。。。
可能需要向谷歌提交一个bug,或者我完全误解了一些东西。。。
更新:经过进一步的反思,我决定这可能是我的WEB-INF使用的文本集。。。UTF-8。这是我唯一能想到的。