0

Maxmind から GeoIP ISP データベースのサイト ライセンスを購入し、それを Google App Engine プロジェクトに実装することにしました。

同じ API/JAR を使用する通常の Java プロジェクトで自分の外部 IP をテストし、それを Comcast に解決することができました。

これを Google App Engine 内に実装するのは大変でした。まったく同じ呼び出し (自分の外部 IP) を使用して、さまざまな IOExceptions を受け取りました。具体的には、標準の LookupService (ファイルから読み取る) を使用するたびに EOFExceptions を受け取り、メモリベースの LookupService を使用するたびに OutOfBoundsArrayExceptions を受け取りました。

特定の情報: データベース ファイルのサイズは問題になりません。約3MBです。ここでオープンソースの API を見つけることができます: https://github.com/maxmind/geoip-api-java

最終的にはこの問題を解決しますが、かなり低レベルのようですので、時間がかかる場合があります。他の誰かが何か問題を抱えているのだろうかと思っていました。

更新 - Commons Codec 1.8 DigestUtils.md5Hex を使用してチェックするたびに、.dat ファイルの MD5 の変更を確認しました。

作業ファイルの MD5 とは異なります。

4

1 に答える 1

0

修理済み...

なんらかの理由で、WEB-INF に .dat ファイルがあると、ファイルが大幅に変更されていました。MD5 チェックサムが同じではありませんでした。

WEB-INF が格納されている「webapp」フォルダーの 1 つ上のルートに移動すると、ファイルの変更が何らかの形で回避され、MD5 が検証されました...

これについては、Google にバグを報告する必要があるかもしれません。そうしないと、何かを完全に誤解しています...

更新: さらに内省して、WEB-INF が使用していたテキスト セットである可能性があると判断しました... UTF-8。思いつくのはこれだけです。

于 2013-07-23T02:33:17.037 に答える