勉強会に向けてGrails AppEngine Pluginについて調査
環境設定(プラグインインストールまでの流れ)
以前紹介した資料どおりです。
grails appengine plugin
インストール後に、JPAかJDOかどちらを使用するか聞かれるが、 JPAを選びました。
理由は特にありません。
ちなみに、 grails appengine plugin
のversionは0.8.3になっていました。着実にバージョンアップしています。
ドメインクラスの作成
上記の資料ではドメインクラスを使用しない例しか記載していないかったので、ここでドメインクラスを作成。 grails-app/domain
直下にクラスを配置すると動かないということなので、適当にパッケージを作成しました。ありきたりだが本の情報を管理するBookクラスを作成。
grails create-domain-class com.Book
Bookドメイン作成
作成後、カラムを追加。
- String name
- String isbn
ビュー、コントローラーも作成
grails generate-all com.Book
ViewとControllerも作成。
アプリケーション起動
grails app-engine run
実行してからなかなか起動しない。かなりあせる。問題があるのか...と思ったら localhoat
になっていました。そりゃ起動しない。
起動はするようになったけれども、com.BookControllerへアクセスでエラー発生。以下のとおり。
org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: static com.Book.list() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[max:10, action:list, controller:book]]
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54)
at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:306)
Caused by: groovy.lang.MissingMethodException: No signature of method: static com.Book.list() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[max:10, action:list, controller:book]]
at com.BookController$_closure2.doCall(BookController.groovy:14)
at com.BookController$_closure2.doCall(BookController.groovy)
... 4 more
com.Book
に listメソッドがない
と言われる。ローカルで動作させるのは無理??
以下のサイトの記述がヒントになりそうなので、明日試してみます。
To get GORM-like behavior with dynamic finders and so on you need to install the GORM-JPA plugin (there currently isn't a GORM API for JDO, sorry!): grails install-plugin gorm-jpa Once this is installed you can using of the regular methods provided by the GORM API like save(), delete() and so on as well as dynamic finders.
分からないので明日の朝試してみる。
ディスカッション
コメント一覧
まだ、コメントがありません