list.gsp FileNotFoundException при следовании учебнику по Grails с плагином app-engine - PullRequest
1 голос
/ 15 ноября 2009

Я пытаюсь следовать учебнику по grails здесь .

Когда я создаю новый контроллер с помощью create-controller XXX.Card и изменяю его, чтобы использовать строительные леса согласно учебнику:

package XXX

class CardController {  
    def scaffold = Card
}

Я получаю следующее исключение, когда нажимаю XXX.CardController :

org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: static XXX.Card.list() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[max:10, action:list, controller:card]]
    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.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:121)
    at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:342)
Caused by: groovy.lang.MissingMethodException: No signature of method: static XXX.Card.list() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[max:10, action:list, controller:card]]
    at XXX.CardController$_closure2.doCall(script1258397512682.groovy:14)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
    at XXX.CardController$_closure2.doCall(script1258397512682.groovy)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
    ... 5 more

Я использую Grails 1.1.1 с плагинами app-engine 0.8.5 и gorm-jpa 0.5.

Что я делаю не так?

Вот сценарий, который я использую для воспроизведения этой проблемы:

rm -rf ~/.grails/1.1.1/projects/XXX
grails create-app XXX
cd XXX
grails install-plugin gorm-jpa
grails install-plugin app-engine # Note: specify JPA when prompted
grails create-domain-class XXX.Card
grails create-controller XXX.Card
cat > grails-app/controllers/XXX/CardController.groovy <<EOF
package XXX

class CardController {
    def scaffold = Card
}
EOF
cat > grails-app/domain/XXX/Card.groovy <<EOF
package XXX

class Card {

    List emails

    static hasMany = [emails:String]
}
EOF
grails app-engine

Ответы [ 3 ]

1 голос
/ 16 ноября 2009

вы пробовали установить плагин gorm-jpa? Я не думаю, что list () реализован в плагине app-engine, а скорее в gorm-jpa.

У jdo нет поддержки gorm.

1 голос
/ 15 ноября 2009

Я просто заново создал ваш сценарий, выполнив следующие шаги, используя Grails 1.1.1:

grails create-app XXX
cd XXX
grails create-domain-class XXX.Card
grails create-controller XXX.Card
-- Edited grails-app\Controllers\XXX\Card.groovy removing the index action and adding the scaffold declaration "def scaffold = Card"
grails run-app

Когда я посетил http://localhost:8080/XXX/card,, мне дали соответствующую страницу списка для класса Card (в котором не было записей и столбцов, поскольку я ничего не добавил в Card)

Обратите внимание на строчную "карточку" (кажется, она правильная), это важно. Пути контроллера в URL-адресе по умолчанию начинаются со строчной буквы.

Надеюсь, это поможет. Если вы не можете выполнить эти шаги и заставить его работать, я посмотрю на те плагины, которые вы установили.

0 голосов
/ 18 ноября 2009

После некоторых разговоров на форумах выяснилось, что в настоящее время GORM слабо работает с App Engine. До следующего выпуска различных подключаемых модулей (app-engine и gorm-jpa), вероятно, лучше держаться подальше от GORM с App Engine.

Спасибо за помощь, Томас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...