2009-08-01から1ヶ月間の記事一覧

Struts1.3+Velocity1.6をGAE/Jに乗せてデータ・ストアを使ってみた

先のログでは、Velocity-Tools1.4に付属しているサンプルが、Google App Engine/Java(GAE/J)上で動くことを見た。 そこで、先に「Struts1.3をGAE/Jに乗せてデータ・ストアを使ってみた」で作成したサンプルを改造して、Velocityを使ってみることにする。Stru…

GAE/JにStruts1.3+Velocity1.6のサンプルを乗せてみた

個人的に、テンプレートエンジンが好きだ。 先日、SourceForgeでリリースしたMyznalaはPHPベースの開発基盤だが、これにはDwooを使わせてもらっている(Smartyの方が有名だが、ライセンスがLGPLなので利用しなかった)。Apache Volocityは、JavaEEのテンプレ…

Struts1.3+Springframework2.5でGAE/Jのデータ・ストアを使ってみた

前回のログでは、Struts1.3の簡単なサンプルを作って、Google Apps Engine/Java(GAE/J)上でデータ・ストアを使ってみた。 それを少し発展させて、同じ仕様で、Struts1.3とSpringframework2.5を連携させたサンプルをGAE/Jに乗せてみた。初期画面は以下。ここ…

Struts1.3をGAE/Jに乗せてデータ・ストアを使ってみた

前回のログでは、Apache Struts(1.3.10)に付属するサンプルをGoogle App Engine/Java(GAE/J)に乗せてみた。せっかく(制限事項つきだが)乗ることが分かったので、struts-blank.warをもとに、データストアを使う簡単なサンプルを作ってみることにした。サ…

GAE/JにStruts1.3のサンプルを乗せてみた

Springframeworkにも、(古くから)SpringMVCというモジュールがあるが、いまだにApache Strutsを使うことが多い。10年くらいJavaEEのアプリをやっている方なら、Struts1.0の頃の衝撃を覚えているに違いない(昔話が多いような。。。)。 ActionForm、Action…

DWR2+SpringframeworkでGEA/Jのデータストアを使う(その2)

前回のログでは、Google App Engine/Java(GAE/J)上で、DWR2からデータストアを利用してみた。この際、最後の「Delete ALLファンクション(1トランザクションで全てのPersonエンティティーを削除する)」で失敗してしまった。 これは、全てのPersonエンテ…

DWR2+SpringframeworkでGEA/Jのデータストアを使う(その1)

これまでのログでは、サーブレットからGAE/Jのデータストアを使ってみたが、DWR2+Springframeworkから使ってみる。サンプルは、以前のログ「Google Apps Engine(Java)のDWRアプリでテキストファイルを読み込んでみる」で使ったものを発展させる。その際に…

Google App EngineにDWR2+SpringframeworkDI&AOPを乗せてみた

前回のログでは、Google App Engine(GAE)にSpringframeworkのDI(Dependency Injection)を乗せて、無事に動くことを見た。今回は、Springframeworkの柱のもう一つである、AOP(Aspect Oriented Programing)を乗せてみる。AOPでWeavingするので、前回のサ…

GAE/JにDWR2+Springframework2.5 DIを乗せてみた

DI(Dependency Injection)が注目されたのが、いつ頃だったか忘れてしまったが、廃刊になってしまった「Javapress」でSeaser2とSpringframework(以下、Spring)のサンプル付きの記事を読んだとき、「これはすごい!!」と思った。場所まで覚えている。渋谷の…

Google App Engine/JavaのData Storeの「良い」ところ

数回のログにわたって、GAE/Jのデータストアを触ってみた。 雑誌の記事や、いくつかのHPを参考にさせていただいたが、まだ情報量が少ないのだなぁ、と思う。自分より先に利用をしてみた友人らと話していると、「GAE/Jはデータストアが特殊だからな。。。」と…

Google Apps Engine/JavaのData Storeで非所有関係を作ってみる(1:1)

GAE/Jのデータストアのマニュアルによれば、非所有関係はサポートしていないので、(プロパティーに)外部キーのようにキーを保管して、アプリケーションでハンドルせよ、と書いてある(これ)。それはそれでいいので、サンプルを作ってみた。前々回のログで…

Google App Engine/JavaのData Storeで所有関係を作ってみる(1:N)

前回のログに引き継き、今度はGAE/Jで1:Nの所有関係を作ってみた。 1:Nの所有関係も、基本的には1:1の時と同じ。GAEのマニュアルを読む限り、所有側のエンティティーにコレクション型のプロパティーを作成すればよい(サポートされるコレクションは、これ)…

Google Apps Engine/JavaのData Storeで所有関係を作ってみる(1:1)

Google Apps Engine/Java(GAE/J)のData Storeで1:1の所有関係を作ってみる。先のログに書いたように、所有関係も(主キー上で表現される)「ルートエンティティーからのパス」概念に帰着される。公式HP(こことかここ)をみると、所有側インスタンスの…

Google App Engine/JavaのData Storeを使ってみる

先のログでは、先走ってGoogle App Engine/Java(GAE/J)のデータストアにおけるカスケード・デリート(Cascade Delete。もしくは、リカーシブ・デリート。Recursive Delete)の問題を書いてしまったのだが、とりあえず、話を整理するために、順をおって、GA…

GAE/Jでカスケードデリートができない!! (Please help!! Cascade delete doesn't work on GAE Data Store.)

Google Apps Engine(GAE)でよく言われるのが、「データストアが…」ということ。公式HPによれば、JDO2.3、JPA1.0をサポートと言われているが、確かに制限事項が多くて、「なにが使えるのか」分からない。 Joinが使えない。 非所有関係がサポートされていな…

Google App Engine/Java上で、DWR2を使ったSessionの管理をするには

先のログで「Google App Engine(GAE)上に配置したDWR2では、scope=sessionの設定がうまくいかない」と書いた。GAEが準じているとするServetAPI2.5の参照実装であるTomcat6.0では、dwr.xmlにscope=sessionで定義したJavaBean(POJO)はセッションのスコープ…

DWR2のscope=sessionは不変オブジェクト??

前回のログで取り上げたサンプルなのだが、実は、Google Apps Engine上ではうまく動かない。 People.javaクラスをsessionスコープに定義しているのだが、レコードを削除して、画面をリフレッシュすると、初期状態に戻ってしまう。これを、そのまま開発環境で…

Google App Engine(Java)のDWRアプリでテキストファイルを読み込んでみる

先日のログ「Google App EngineにDWR2を乗せてみた」で、Google Apps Engine(GAE)にDWR2を乗せて簡単なサンプルを動かしてみた。GAEに関する記事などを読むと、GAEではファイルIOに制限があるとのこと。「(GAEのプラットフォームを)ファイルシステムと見な…

Google Apps Engine/Javaのセッション管理

Google Apps Engine(GAE)では、Java6.0の実行環境とServlet API 2.5に準ずるサーバー環境が提供されている。Servlet APIバージョンはスタブとして作成されるweb.xmlから見て取れる。仕様の中で気になることの1つが「セッション管理」である。Webアプリケ…