Преобразование контроллера Grails '/' по умолчанию не разрешается должным образом - PullRequest
9 голосов
/ 16 января 2010

Этот сводит меня с ума сегодня. После обновления до Grails 1.2 и Weblogic 10.3 перестало работать отображение корня по умолчанию для "/". Вот что у меня есть ...

У меня есть это отображение URL:

"/"(controller:"IGive", action:"index" )

У меня есть контроллер с именем IGiveController с закрытием индекса

def index = {
    render "foo"
}

Когда я захожу в приложение, запущенное во встроенных Tomcat и Jetty с http://localhost:8080/mycontext/, я получаю возвращаемое свойство "foo". Но когда я строю войну и развертываюсь в Weblogic 10.3, я получаю 404.

Я опустился до Grails 1.1.2, и он все еще не работал на Weblogic 10.3, но ошибка была более наглядной

Could not open ServletContext resource [/WEB-INF/grails-app/views/index.gsp] 

Похоже, что он полностью игнорирует мое сопоставление URL для "/", но другие более глубокие сопоставления URL работают. Любые подсказки ??

Ответы [ 2 ]

8 голосов
/ 20 января 2010

Я думаю, что это больше связано с Weblogic - я вижу то же самое на Weblogic 9.2 - но не на Tomcat или Jetty. Не попадает в мой UrlMapping:

"/"(controller: 'home', action: 'index')

Я думаю, что Weblogic является умным и преобразует / -> index.gsp, который затем возвращается как 404.

Есть немного уродливый обходной путь - просто добавьте сопоставление следующим образом:

"/index.gsp"(controller: 'home', action: 'index')   

и это похоже на дело. У кого-нибудь есть лучший способ это исправить ???

1 голос
/ 16 января 2010

Это может быть связано с ошибкой Grails 1.2. См. GRAILS-5609 и эту тему на форуме Grails. Это исправлено в 1.2.1. Похоже, что 1.2 ввел некоторые ошибки регрессии с UrlMappings ...

...