Отображение контроллера Grails по умолчанию не разрешается должным образом

Этот сегодня сводил меня с ума. После обновления до 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-адресов, которые являются более глубокими, работают. Какие-нибудь подсказки ??


person mbrevoort    schedule 16.01.2010    source источник


Ответы (2)


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

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

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

Есть несколько уродливый обходной путь - просто добавьте сопоставление, подобное этому:

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

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

person spidie    schedule 20.01.2010
comment
спасибо дружище, ничего себе, ты только что сделал мой день! Позднее сегодня я зарегистрировал ошибку в Jira - person mbrevoort; 20.01.2010
comment
Этот обходной путь также работал в развертывании wildfly8 .war, которое в противном случае показало бы, что index.gsp не найден при доступе к корневому каталогу: "/index.gsp"(view:"/index") - person Bruno Flávio; 18.07.2014

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

person fabien7474    schedule 16.01.2010