<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GAE on ゲンゾウ用ポストイット</title><link>https://genzouw.com/entry/category/gae/</link><description>Recent content in GAE on ゲンゾウ用ポストイット</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sun, 14 Mar 2021 08:15:15 +0900</lastBuildDate><atom:link href="https://genzouw.com/entry/category/gae/index.xml" rel="self" type="application/rss+xml"/><item><title>Grails App Engine Plugin + Gorm JPA Pluginでリレーションを定義してみる</title><link>https://genzouw.com/entry/2009/07/23/230600/307/</link><pubDate>Thu, 23 Jul 2009 23:06:00 +0900</pubDate><guid>https://genzouw.com/entry/2009/07/23/230600/307/</guid><description>&lt;p&gt;&lt;strong&gt;Grails App Engine Plugin + Gorm JPA Plugin&lt;/strong&gt; で、ひとまずリレーションのないドメインクラスを用意した場合の動作は確認できました。&#10;次はリレーションを追加してみることにしました。が、うまくいかない。&#10;とりあえず試してみたことを列挙してみる。&lt;/p&gt;&#10;&lt;h2 id="環境"&gt;環境&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;grails-1.1.1&lt;/li&gt;&#10;&lt;li&gt;groovy-1.6.3&lt;/li&gt;&#10;&lt;li&gt;java-1.6.0.14&lt;/li&gt;&#10;&lt;li&gt;app-engine-plugin-0.8.3&lt;/li&gt;&#10;&lt;li&gt;gorm-jpa-0.3&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="まずは単純に動くところまで"&gt;まずは単純に動くところまで&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://genzouw.com/entry/2009/07/15/231700"&gt;Grails AppEngine PluginでJPAを使用する（成功） | ゲンゾウ用ポストイット&lt;/a&gt; にて、リレーションのないドメインが動くところまで。&lt;/p&gt;&#10;&lt;h2 id="リレーションを追加"&gt;リレーションを追加&lt;/h2&gt;&#10;&lt;p&gt;ここからがおかしいのだろうと思う。まずは以下の２つのドメインを作成した。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;com.sample.Book&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;com.sample.Category&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;コードは以下のとおり。&lt;/p&gt;&#10;&lt;h3 id="bookgroovy"&gt;Book.groovy&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-groovy" data-lang="groovy"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;package&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sample&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;javax.persistence.*&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@Entity&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Book&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="n"&gt;Serializable&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nd"&gt;@Id&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nd"&gt;@GeneratedValue&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strategy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GenerationType&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;IDENTITY&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Long&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;isbn&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nd"&gt;@ManyToOne&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Category&lt;/span&gt; &lt;span class="n"&gt;category&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="n"&gt;constraints&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nl"&gt;visible:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="categorygroovy"&gt;Category.groovy&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-groovy" data-lang="groovy"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;package&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sample&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;javax.persistence.*&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@Entity&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Category&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="n"&gt;Serializable&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nd"&gt;@Id&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nd"&gt;@GeneratedValue&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strategy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GenerationType&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;IDENTITY&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Long&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nd"&gt;@OneToMany&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;List&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;book&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;books&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="n"&gt;constraints&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nl"&gt;visible:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;あとはcontroller、viewを作成して実行。&lt;/p&gt;</description></item><item><title>Grails In GAEのローカル動作がおかしくなったら</title><link>https://genzouw.com/entry/2009/07/22/075000/308/</link><pubDate>Wed, 22 Jul 2009 07:50:00 +0900</pubDate><guid>https://genzouw.com/entry/2009/07/22/075000/308/</guid><description>&lt;p&gt;&lt;strong&gt;grails&lt;/strong&gt;に&lt;strong&gt;grails app engine plugin&lt;/strong&gt;を入れていろいろ試しているのだが、前日に動作していたアプリをドメインクラス１つ追加したぐらいの変更で動作しなくなってしまった。&lt;/p&gt;&#10;&lt;p&gt;一度プロジェクトを削除して、再度&lt;span style="color: rgb(0, 128, 128);"&gt;&lt;strong&gt;grails create-app&lt;/strong&gt;&lt;/span&gt;を実行するも、事態は改善に向かわず。&lt;/p&gt;&#10;&lt;p&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&lt;strong&gt;grails app-engine&lt;/strong&gt;&lt;/span&gt;コマンド実行時に以下のようなエラーが出ていた。&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;&#10;Caused by: : The following error occurred while executing this line:&#10;/usr/share/appengine-java-sdk-1.2.2/config/user/ant-macros.xml:94: Java returned: 1&#10; at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:541)&#10; at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:394)&#10; at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)&#10; at org.apache.tools.ant.Task.perform(Task.java:348)&#10; at _Events$_run_closure1.doCall(_Events.groovy:54)&#10; at _GrailsEvents_groovy$_run_closure5.doCall(_GrailsEvents_groovy:59)&#10; at _GrailsEvents_groovy$_run_closure5.call(_GrailsEvents_groovy)&#10; at _GrailsWar_groovy$_run_closure4.doCall(_GrailsWar_groovy:240)&#10; at AppEngine$_run_closure2.doCall(AppEngine:26)&#10; at gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324)&#10; ... 10 more&#10;Caused by: /usr/share/appengine-java-sdk-1.2.2/config/user/ant-macros.xml:94: Java returned: 1&#10; at org.apache.tools.ant.taskdefs.Java.execute(Java.java:107)&#10; at com.google.appengine.tools.enhancer.EnhancerTask.execute(EnhancerTask.java:99)&#10; at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)&#10; at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)&#10; at org.apache.tools.ant.Task.perform(Task.java:348)&#10; at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:62)&#10; at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)&#10; at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)&#10; at org.apache.tools.ant.Task.perform(Task.java:348)&#10; at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:391)&#10; ... 18 more&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&lt;strong&gt;grails clean;grails app-engine&lt;/strong&gt;&lt;/span&gt;とコマンド実行して、一度クリーンしてもダメ。&lt;/p&gt;</description></item><item><title>Grails in GAEの課題</title><link>https://genzouw.com/entry/2009/07/16/225300/309/</link><pubDate>Thu, 16 Jul 2009 22:53:00 +0900</pubDate><guid>https://genzouw.com/entry/2009/07/16/225300/309/</guid><description>&lt;p&gt;ようやく&lt;strong&gt;Google App Engine&lt;/strong&gt;で&lt;strong&gt;Grails + GORM&lt;/strong&gt;が動いた。&lt;/p&gt;&#10;&lt;p&gt;けれどもいくつか気になる点が。&lt;/p&gt;&#10;&lt;h4&gt;前提&lt;/h4&gt;&#10;&lt;p&gt;あくまで以下のプラグインを使った僕の環境での課題です。&lt;/p&gt;&#10;&lt;ul&gt;&#10; &lt;li&gt;grails appengine plugin&lt;/li&gt;&#10; &lt;li&gt;grails gorm-jpa plugi&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;アプリのURLはこちら。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://genzouw.appspot.com/book/list"&gt;Book List&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4&gt;Grailsでのメッセージ表示&lt;/h4&gt;&#10;&lt;p&gt;&lt;strong&gt;Grails&lt;/strong&gt;で生成される&lt;strong&gt;Controller&lt;/strong&gt;クラスを見てみると、以下の処理終了後にメッセージを出力するようになっている。&lt;/p&gt;&#10;&lt;ul&gt;&#10; &lt;li&gt;登録（save）&lt;/li&gt;&#10; &lt;li&gt;更新(update）&lt;/li&gt;&#10; &lt;li&gt;削除（delete）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Grailsにはいくつかのスコープが存在していて一般的なリクエスト、セッションの他に&lt;strong&gt;フラッシュ&lt;/strong&gt;なんてのもある。&lt;/p&gt;&#10;&lt;p&gt;Japanese Controllers - Grails - Codehaus&lt;/p&gt;&#10;&lt;p&gt;上記の更新処理実行後は、&lt;/p&gt;&#10;&lt;p&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;flash.message = &amp;quot;~なんかメッセージ~&amp;quot;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;と言う風に表示したいメッセージをセットしている。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;View&lt;/strong&gt;ではこの&lt;strong&gt;flash.message&lt;/strong&gt;が空でない場合のみ表示するようになっている。&lt;/p&gt;&#10;&lt;h4&gt;GAE上だとメッセージがずっと残ってしまう（Grails AppEngine Pluginの問題？）&lt;/h4&gt;&#10;&lt;p&gt;通常は画面表示後に&lt;strong&gt;flash&lt;/strong&gt;スコープの内容がクリアされる。&lt;/p&gt;&#10;&lt;p&gt;GrailsプロジェクトにGrails AppEngine Plugin、Gorm-JPA Pluginを入れてもこれは同様。&lt;/p&gt;&#10;&lt;p&gt;ただし、&lt;strong&gt;GAE上にアップするとなぜかflashスコープの値がクリアされなくなってしまう。&lt;/strong&gt;更新後に表示されたメッセージが、たとえば一覧画面を飛び回っている間も表示され続けたりする。挙句の果て、次の更新、削除を行ってもメッセージが切り替わらない。&lt;/p&gt;&#10;&lt;h4&gt;[HOME]のリンクおかしい&lt;/h4&gt;&#10;&lt;p&gt;&amp;nbsp;こちらはローカルでも出るので、&lt;strong&gt;Grails AppEngine Plugin&lt;/strong&gt;が原因の可能性が大きい。&lt;/p&gt;&#10;&lt;p&gt;画面の左上の[HOME]のリンクを押しても、現在表示中のページがリロードされるだけ。サイトのトップへ移動してくれなくなってしまった。&lt;/p&gt;&#10;&lt;p&gt;暇があったら原因を調べてみたい。&lt;/p&gt;</description></item><item><title>Grails AppEngine PluginでJPAを使用する（成功）</title><link>https://genzouw.com/entry/2009/07/15/231700/310/</link><pubDate>Wed, 15 Jul 2009 23:17:00 +0900</pubDate><guid>https://genzouw.com/entry/2009/07/15/231700/310/</guid><description>&lt;p&gt;&lt;strong&gt;Grails&lt;/strong&gt; + Grails AppEngine Plugin + JPA でようやく簡単なアプリが動作確認できたので整理。&lt;/p&gt;&#10;&lt;h2 id="動作確認時の環境"&gt;動作確認時の環境&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Groovy 1.6.3&lt;/li&gt;&#10;&lt;li&gt;Grails 1.1.1&lt;/li&gt;&#10;&lt;li&gt;Google App Engine sdk for java 1.2.1&lt;/li&gt;&#10;&lt;li&gt;Grails Appengine Plugin 0.8.3&lt;/li&gt;&#10;&lt;li&gt;Grails gorm-jpa plugin 0.3&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="資料"&gt;資料&lt;/h2&gt;&#10;&lt;p&gt;何度もブログで掲載している以下の資料を再度整理しました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="http://docs.google.com/present/edit?hl=ja&amp;amp;id=dgkcctp6_2123s6h5tc7"&gt;Google App Engine で Grails! - &amp;ldquo;Google Docs&amp;rdquo;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="お願い"&gt;お願い&lt;/h2&gt;&#10;&lt;p&gt;誤りなどありましたらお知らせください。できるだけ早く直します。資料みれないんじゃーとかも教えてください。&lt;/p&gt;&#10;&lt;p&gt;ちなみに動いたやつはこれ。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="http://genzouw.appspot.com/book/list"&gt;Book List&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;非常にシンプル。&lt;/p&gt;</description></item><item><title>google app engine sdk 1.2.2リリース</title><link>https://genzouw.com/entry/2009/07/15/220300/311/</link><pubDate>Wed, 15 Jul 2009 22:03:00 +0900</pubDate><guid>https://genzouw.com/entry/2009/07/15/220300/311/</guid><description>&lt;p&gt;今日、何気なく&lt;strong&gt;Google App Engine&lt;/strong&gt; &lt;strong&gt;SDK&lt;/strong&gt;のサイトを除いたら、バージョンが1.2.1から1.2.2になっていた。&lt;/p&gt;&#10;&lt;p&gt;リリースは&lt;strong&gt;2009/07/13&lt;/strong&gt;となっていたので、二日前にリリースされたんですね。&lt;/p&gt;&#10;&lt;p&gt;最近Google App Engineにリトライ中なのであまりバージョンの異なるものに入れ替えはよくないかなーと思いつつ、やはり使うなら最新版だろ！ということで早速入れ替え。&lt;/p&gt;</description></item><item><title>ついにGoogle App EngineでGrails動いた！！</title><link>https://genzouw.com/entry/2009/05/19/211700/331/</link><pubDate>Tue, 19 May 2009 21:17:00 +0900</pubDate><guid>https://genzouw.com/entry/2009/05/19/211700/331/</guid><description>&lt;p&gt;大興奮です！！&lt;/p&gt;&#10;&lt;p&gt;たった今、 &lt;strong&gt;Google App Engine&lt;/strong&gt; 上で &lt;strong&gt;Grails&lt;/strong&gt; が動きました！昨日設定した内容で問題なかったようです。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://genzouw.com/entry/2009/05/18/212600"&gt;Grails 1.1.1で、Google App Engineに再チャレンジ！ | ゲンゾウ用ポストイット&lt;/a&gt; から以降のいきさつは以下のとおり。&lt;/p&gt;&#10;&lt;h2 id="気持ちを切り替えてgoogle先生に尋ねる"&gt;気持ちを切り替えてGoogle先生に尋ねる&lt;/h2&gt;&#10;&lt;p&gt;昨日はすべて止めてしまったけど、娘が寝てから再度チャレンジしてみた。&lt;/p&gt;&#10;&lt;p&gt;google先生に &lt;strong&gt;datastore-indexes.xml&lt;/strong&gt; について質問してみると、関係がありそうなエントリが。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://blog.livedoor.jp/cbnanashi/archives/818468.html"&gt;CB NANASHI管理人ブログ : GAE/J、SDK 1.2.1が公開、バージョンアップ時の注意&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;また修正されたログ取得を試すためにappcfg.cmdを実行するとdatastore-indexes.xml がスキーマに合致しない旨の出ました。xmlの「xmlns=&amp;ldquo;&lt;a href="http://appengine.google.com/ns/datastore-indexes/1.0%22"&gt;http://appengine.google.com/ns/datastore-indexes/1.0&amp;quot;&lt;/a&gt;」を削除したところ動作しました。&lt;/p&gt;&#10;&lt;h2 id="そしてデプロイ再実行"&gt;そしてデプロイ再実行&lt;/h2&gt;&#10;&lt;p&gt;ということで、以下のファイルから上記に該当する箇所を削除。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ emacs target/war/WEB-INF/datastore-indexes.xml&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;再度実行。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nv"&gt;$APPENGINE_HOME&lt;/span&gt;/bin/appcfg.sh update ./target/war&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;おおお！！！いけた！！いけたよ！！！&#10;念願のGrailsがフリー環境のサーバーで動くよ！！！！！&#10;Google様、一生ついていきます！&lt;/p&gt;&#10;&lt;h2 id="そして"&gt;そして&lt;/h2&gt;&#10;&lt;p&gt;これを整理して、今月末の &lt;a href="http://www.jggug.org/news/dai2kai%E3%80%8Cgroovyin%E3%83%BBakushon%E3%80%8Ddokushokaiinkansaikaisai"&gt;第2回 「Groovyイン・アクション」読書会IN関西&lt;/a&gt; での &lt;strong&gt;LTネタ&lt;/strong&gt; としよう。&lt;/p&gt;</description></item></channel></rss>