色聴者判定テスト > Google Analytics Mobile JSP版のException修正方法
このページの中で何か分からないことがありましたら、
@ts_3156に何でも聞いてください。
「このコードのここの意味が分からない」とか、何でも大丈夫ですよ(^-^)
Google Analytics Mobile JSP版のException
Google Analytics MobileのJSP版には、2010年10月の時点でいまだにバグがあります。
NullPointerExceptionがでるために正常にアクセス解析できないという致命的なバグです。
どうやら、PHP版、Perl版でも同じバグがあるようなのですが、JSP版のバグについて解説しているページが少ないようです。
同じ過ちを繰り返す人が少しでも減るように、気付いた事や注意点をまとめておきます。
Google Analytics Mobile JSP版の具体的なExceptionの個所
NullPointerExceptionがでるのはga.jspの以下の個所です。
connection.addRequestProperty("User-Agent", request.getHeader("User-Agent")); connection.addRequestProperty("Accepts-Language", request.getHeader("Accepts-Language"));
上記のコードで、request.getHeader("User-Agent")、request.getHeader("Accepts-Language")の値がnullだった場合に、
connection.getContent();
この個所でNullPointerExceptionが起きます。これを修正するには、
if(request.getHeader("User-Agent") != null) connection.addRequestProperty("User-Agent", request.getHeader("User-Agent")); if(request.getHeader("Accepts-Language") != null) connection.addRequestProperty("Accepts-Language", request.getHeader("Accepts-Language"));
このようなnullチェックを行うだけです。たったこれだけなんですが、バグの原因となっている個所とNullPointerExceptionの起きる場所が違っていたため、 原因究明に多大な時間がかかってしまいました…。Googleのコードだからと言って無条件に信用してはだめですね。
すっきりわかるGoogle App Engine for Javaクラウドプログラミング
私がGoogle App Engineのことを調べる上で参考にした書籍です。
Google App Engineのほぼすべての要素(Googleアカウント認証、OAuth認証、メール送受信、URLFetch API、Datastore、Blobstore、memcached)についてむっちゃ分かりますくまとめられてます。とりあえず立ち読みだけでもしてみてください。笑
このページの中で何か分からないことがありましたら、
@ts_3156に何でも聞いてください。
「このコードのここの意味が分からない」とか、何でも大丈夫ですよ(^-^)