Maxmind';在Google App Engine中,s Java API getOrg会导致IOException,但在标准Java中不会

Maxmind';在Google App Engine中,s Java API getOrg会导致IOException,但在标准Java中不会,java,google-app-engine,maxmind,Java,Google App Engine,Maxmind,我从Maxmind购买了GeoIP ISP数据库的站点许可证,并决定在我的Google App Engine项目中实现它 我用一个普通的Java项目测试了我自己的外部IP,该项目使用相同的API/JAR,并且能够将其解析为Comcast 在谷歌应用程序引擎中实现它是一件痛苦的事情。使用相同的调用(我自己的外部IP),我收到了各种IOException,特别是使用标准LookupService(从文件读取)时的EOFEException和使用基于内存的LookupService时的OutofBou

我从Maxmind购买了GeoIP ISP数据库的站点许可证,并决定在我的Google App Engine项目中实现它

我用一个普通的Java项目测试了我自己的外部IP,该项目使用相同的API/JAR,并且能够将其解析为Comcast

在谷歌应用程序引擎中实现它是一件痛苦的事情。使用相同的调用(我自己的外部IP),我收到了各种IOException,特别是使用标准LookupService(从文件读取)时的EOFEException和使用基于内存的LookupService时的OutofBoundsArrayException

一些具体信息: 数据库文件大小不应成为问题。大约为~3mb。 您可以在此处找到API开源:

我最终会解决这个问题,但它似乎是相当低的水平,所以它可能需要一些时间。我想知道是否还有其他人有任何问题

更新-我刚刚确认了使用Commons Codec 1.8 DigestUtils.md5Hex检查时.dat文件的MD5更改

它不同于工作文件的MD5

修正了

出于某种原因,在WEB-INF中使用.dat文件会显著改变它。MD5校验和不一样

将它放在我的“webapp”文件夹的上面一个根目录下,该文件夹包含WEB-INF,不知何故避免了文件的更改和MD5验证

这一次可能需要向谷歌提交一个bug,或者我完全误解了一些事情


更新:经过进一步的反省,我决定这可能是我的WEB-INF使用的文本集。。。UTF-8。这是我能想到的唯一一件事。

与您的问题没有严格的关系,但您是否知道GAE为请求提供地理信息(国家、地区、城市、城市lat/long)。看,我知道,但这并不能真正帮助我识别用户的ISP。不过,谢谢你提供的信息!如果我以后需要,可能会派上用场。更新!我刚刚确认了使用Commons Codec 1.8 DigestUtils.md5Hex检查时.dat文件的MD5更改。它不同于工作文件的MD5。