[GAE]NoClassDefFoundError: javax.servlet.FilterChainの解決法

久しぶりにGoogle App Engine(以下GAE)のアプリをローカル環境でいじってみたら、以下の様なエラーが発生。

HTTP ERROR 500

Problem accessing /[アプリケーション名]. Reason:

javax.servlet.FilterChain is a restricted class. Please see the Google App Engine developer's guide for more details.
Caused by:

java.lang.NoClassDefFoundError: javax.servlet.FilterChain is a restricted class. Please see the Google App Engine developer's guide for more details.

新規プロジェクトで作成されるデモ(TestServlet)でもサーブレットを動かすと同様の挙動になるので、これはJDKかApp Engine SDKの問題かなーと当たりを付けて調べてみました。(主に海外サイトを巡回)


“[GAE]NoClassDefFoundError: javax.servlet.FilterChainの解決法”の続きを読む

【Google APIs】カレンダーを取得できないケース(カレンダーの共有設定)

前回の記事で自身の非公開カレンダーをJavaで取得する方法を書いたのですが、意図しないカレンダーを取得してしまう現象に陥っていました。というか取得できていたようで取得できていなかったのかも・・・。

結論から書くと、「カレンダー自体の共有権限」及び、独自ドメイン(Google Apps)と紐づけしたgoogleアカウントを利用しているので「ドメインユーザへの共有権限」が付与されていないのが原因でした。

この記事ではカレンダーの共有設定について書きたいと思います。
Google Appsの共有設定については【Google Apps】カレンダーの共有権限が「予定の時間枠のみ表示」の対処法を参照ください。

“【Google APIs】カレンダーを取得できないケース(カレンダーの共有設定)”の続きを読む

【Google APIs】Javaでカレンダーv3を認証画面なし(自動)で取得する(OAuth使用)

2013/10/8追記—
このサンプルで意図するカレンダーリスト(一覧)が取得できない場合、「カレンダーの共有設定」もしくは、Google Appsユーザの場合「Appsユーザへの共有設定」が行われていない可能性があります。

参考



Google APIsのCalendar APIで、非公開のカレンダーをOAuth認証で取得するプログラムをGoogle App Engine(Java)で作成中です。

まだ実験段階なのですが、Google公式のサンプルもAPIのバージョンが古い?のであまり役に立たず・・・。検索しても、やはり古い情報しかヒットしないので試行錯誤してみました。(検索のキーワードが良くなかったのかな?)

やりたいことは、WEBアプリケーションとGoogleとのあいだの認証だけで動作させることです。
つまり、ユーザ認証画面は表示させません。

普通に作成したWeb Applicationアカウントでは実現不可?な感じでしたので、Service account」を作成して取りあえず、OAuth認証までは自動化(アカウント名とパスワード入力画面を表示させない)できたので、そこまでのコードを記載しておこうと思います。

“【Google APIs】Javaでカレンダーv3を認証画面なし(自動)で取得する(OAuth使用)”の続きを読む

【Google APIs】OAuth2:Client IDの種類

Google APIsのCalendar API(Java)を使用して、自分のアカウントの非公開カレンダーを表示するだけの機能を試行錯誤で作ってます。

検索かけても出てくる情報は古いものばかりで現在のAPIの仕様と同一ではなく、海外サイトやgoogleのフォーラムを見ながらの本当の試行錯誤になってしまいました(汗

だって本家Googleさんのサンプルをコピペしても、使われているAPIのクラスやメソッドが既に削除、もしくは仕様変更されてしまっているので動かないんですもの・・・。
まぁJava APIの最新バージョンもRC版みたいですし、今後も変わる可能性を考えると実装は他言語で行った方が良かったかなぁ・・・と今更ながらに思っています。


今回は(プロの方から見れば)基本と思われる、Client IDの種類について書いてみます。
自分はGoogle APIをいじるのは初めてなのでプロじゃないです_(:3」∠)_
なので、間違っている箇所や補足があったら随時、加筆修正していきます。

“【Google APIs】OAuth2:Client IDの種類”の続きを読む

Google App Engineへの登録

今更だがGoogle App EngineでJavaが使えるとのことなので試してみようという気になった。
とりあえず、Googleのアカウントは持っている状態から、Google App Engineの登録までの過程をメモ。

Google App Engineへの登録

  1. Google App Engineへアクセスし、「登録」リンクをクリック
  2. gmailのアカウントを入力し、ログインする
  3. 「Verify Your Account by SMS」というページが表示され、以下の事項を入力
    • Country and Carrier: Japan
    • Select your carrier…: 携帯電話のキャリア(自分の場合はDocomo)
    • Username: 携帯電話のメールアドレスの@より前の部分
    • 例:hogehoge@docomo.ne.jpの場合、「hogehoge」を入力する。
  4. 携帯にメールが届くので、次のページの「Enter Account Code:」にメールに書いてあったアカウントコードを入力する。すると「Create an Application」というページに飛ぶ。
  5. いくつかの入力フォームがあるので、以下のように記述する。
    • Application Identifier: [任意の名前].appspot.com
    • ※おそらく、これがURLになるのだろう。
    • Application Title: 任意の名前
    • ※これがWEBアプリ(サイト)のタイトルとなる。
      日本語名称を入れたら怒られた。
      ちなみに、これは後から変更できるので取りあえず適当でOK
  6. Saveをクリックすると「Application Registered Successfully」というページに遷移する。取りあえずこれで登録は完了。

まだアプリは作っていないので、続きはまた今度書こうと思う。
動作確認しようにもアプリがないので出来ないっす・・・。