どんぐりでもできる Eclipse 3.5 GAE/J Slim3 Datastoreの環境構築
Pleiadesがぶっ壊れた、重い等諸々の理由により、素のEclipseでGoogle App Engine for Java(GAE/J)の環境をそろえる事にしたので覚え書き
ついでにJDOが意味不明なのでSlim3 Datastoreを使ってみる
0.JRE/JDKインストール
http://java.com/ja/download/
http://java.sun.com/javase/downloads/widget/jdk6.jsp
1.Eclipse DL
http://www.eclipse.org/downloads/
Eclipse IDE for Java Developers をDL
解凍してeclipseフォルダをC:\の直下に置く
2.言語パック
http://www.igapyon.jp/blanco/nlpack/eclipse/index.html
からEclipse IDE for Java DevelopersをDL
解凍してeclipseフォルダを上書き
3.GAE/Jのインストール
Eclipse起動してヘルプ→新規ソフトウェアインストール
作業対象 http://dl.google.com/eclipse/plugin/3.5 で追加
名前はGAEとか何とか適当に
PluginとSDK両方にチェックを入れ次へを押しまくり、インストール
4.Subversionプラグインインストール
ヘルプ→新規ソフトウェアインストール
作業対象 Galileo - http://download.eclipse.org/releases/galileo 選択
Collabration → Subversive SVN Team Provider (Incubaion) にチェック
次へ でインストール
再起動後 ヘルプ→新規ソフトウェアインストール
作業対象 http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/ で追加
名前はSVN Connectorsとか何とか適当に
Subversive SVN Connectors → SVNKit 1.3.0 Implemenation (Optional) にチェック
5.New Web Application Projectを押してプロジェクト作成
GWTのチェックは外す
6.Slim3ダウンロード&インストール
http://code.google.com/p/slim3/downloads/list
最新のをダウンロード
適当な所で解凍
lib/slim3-gen-1.X.X.jar を
プロジェクト直下にlibフォルダを作り、そこに格納
war/WEB-INF/lib/slim3-1.X.X.jar を
プロジェクト配下の war/WEB-INF/lib に格納
7.Slim3設定
メニューのウインドウ→設定→一般→ワークスペース で「自動的にリフレッシュ」にチェック。
プロジェクトのプロパティより
Javaコンパイラ→注釈処理 で
「プロジェクト固有の設定を可能にする」 に チェック。
生成されるソース・ディレクトリー を generated にする。
Javaコンパイラ→注釈処理→ファクトリーパス で
「プロジェクト固有の設定を可能にする」 に チェックし、
JARの追加で lib/slim3-gen-1.X.X.jar を追加
ビルダー で Enhancer のチェックを外す。
Javaのビルド・パス で JARの追加 を押し
war/WEB-INF/lib/slim3-1.X.X.jar
を追加。
web.xmlに以下のフィルタを追加
<filter> <filter-name>datastoreFilter</filter-name> <filter-class>org.slim3.datastore.DatastoreFilter</filter-class> </filter> <filter-mapping> <filter-name>datastoreFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping>
参考サイト 詳しく書いてあります。
http://d.hatena.ne.jp/hidemon/20100212/1266006576
http://songofcloud.gluegent.com/2009/11/slim3-datastore2.html
8.動作確認
以下のような簡単なエンティティクラスを作成
package slim3test; import org.slim3.datastore.Attribute; import org.slim3.datastore.Model; import com.google.appengine.api.datastore.Key; @Model public class Hoge { @Attribute(primaryKey = true) private Key id; private String msg; public Key getId() { return this.id; } public void setId(Key id) { this.id = id; } public String getMsg() { return this.msg; } public void setMsg(String msg) { this.msg = msg; } }
次に標準のServletを以下のように書き換え
package slim3test; import java.io.IOException; import javax.servlet.http.*; import org.slim3.datastore.Datastore; import org.slim3.datastore.EntityNotFoundRuntimeException; import com.google.appengine.api.datastore.Key; @SuppressWarnings("serial") public class Slim3testServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { int id; id = 1; Key key = Datastore.createKey(Hoge.class, id); Hoge hoge = new Hoge(); hoge.setId(key); hoge.setMsg("Hello, Slim3 Datastore!"); Datastore.put(hoge); HogeMeta meta = new HogeMeta(); try{ Hoge item = Datastore.get(meta,key); resp.setContentType("text/plain"); resp.getWriter().println(item.getMsg()); } catch(EntityNotFoundRuntimeException e){ } } }
実行→Web Application してみてHello, Slim3 Datastoreが出ればOK
以上です。
Slim3 Datastore シンプルです。すごいよ!勉強しよっと。
SIerにいた頃は、よく環境構築手順書を「どんぐりでもできる」シリーズとして
せこせこ作ってたな・・・
ちなみにGAE/Jはこの本が基本を良く押さえててわかりやすかった。
課金の仕組みや基本の考え方など、最初に読むにはいいと思う