2009-12-28

GAE/J、8080 から 8888 に

App Engine SDK を 1.2.6 から 1.3.0 に更新したら、ローカルテスト環境のポートが 8080 から 8888 に変わった。更新を飛ばしてわからなかったけれど、SDK 1.2.8 からかも。

なので、ローカルでのアプリケーションの確認は

http://localhost:8888/

から、開発コンソール(DataStore や TaskQueue の状態確認)は

http://localhost:8888/_ah/admin

からのアクセスになる。
ということでブラウザのブックマークを書き換え。

GAE/J、ルートにサーブレット

アプリケーションのトップに index.html じゃなくて、メインのサーブレットを置きたいなと思って web.xml をいじり中。
<servlet>
    <servlet-name>main</servlet-name>
    <servlet-class>info.kuribo.example.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>main</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
と書いてみたけれど、実際にアクセスしてみると index.html が表示される…。あ、そうそうこれだと思ってさらに
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>
を消してみたものの、変わらず。

結局、その後に war ディレクトリの index.html 自体を削除したらちゃんと思ったとおりに動いた。ルートディレクトリは、サーブレットのマッピングやウェルカムファイルのリストがどうあれ、index.html があったら優先して表示する仕組みみたい。マッピングの書き方が間違っているのかもしれないけれど…。

とりあえず、関係なかったウェルカムファイルのリストだけ、元に戻す(サブディレクトリで影響が出るかも、と)。

2009-12-27

GAE/J、TaskQueue 使ってみた

Google App Engine for Java で今日は TaskQueue いじり。なんか 405 とか HTTP エラーが出るので見てみると、Task は基本 POST でアクセスしているよう。

GET でアクセスさせるには、
Queue queue = QueueFactory.getDefaultQueue();
queue.add(url("/path?a=b&c=d").method("GET"));
ってするようにドキュメントには書いてあるんだけれど、そのとおりにやってみると「com.google.appengine.api.labs.taskqueue.TaskOptions に method(String) なんてないぞ」と eclipse に怒られる…。ここは
Queue queue = QueueFactory.getDefaultQueue();
queue.add(TaskOptions.Builder.url("/path?a=b&c=d").method(TaskOptions.Method.GET));
としとけばいいみたい。

Zenback - Everyone's Related Posts