2010-01-16 60 views
9

今天這一直讓我發瘋。自升級到Grails 1.2和Weblogic 10.3以來,「/」的默認根映射停止工作。這是我有...默認的Grails'/'控制器映射不能正確解析

我有這樣的URL映射:

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

我有一個名爲IGiveController與索引封

def index = { 
    render "foo" 
} 

當我去我的應用程序運行在控制器嵌入Tomcat和Jetty與http://localhost:8080/mycontext/我得到「foo」返回的屬性。但是,當我建立一個戰爭並部署到WebLogic 10.3,我收到了404

我降級到1.1.2 Grails的,它仍然沒有Weblogic上10.3的工作,但錯誤是更具描述性

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

因此,它似乎完全忽略了「/」的URL映射,但其他更深層的URL映射正在工作。任何線索?

回答

8

我認爲這與Weblogic更爲相關 - 我在Weblogic 9.2上看到了相同的內容 - 但不在Tomcat或Jetty上。不打我的urlMapping中:

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

我覺得是WebLogic聰明和轉換/ - > index.gsp中,然後回來爲404

有一個稍微難看的解決方法 - 只需添加一個這樣的映射:

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

這似乎是伎倆。任何人都有更好的方法來解決這個問題?

+0

感謝隊友,哇,你只是讓我的一天!我今天晚些時候在Jira註冊了一個bug – mbrevoort 2010-01-20 16:59:19

+0

這個解決方法也適用於wildfly8 .war部署,否則在訪問根目錄時會顯示index.gsp:''/index.gsp"(view:"/index「)' – 2014-07-18 11:35:50

1

它可能與Grails 1.2 bug有關。在Grails論壇中查看GRAILS-5609thread。它在1.2.1中修復。似乎1.2引入了一些與UrlMappings的迴歸bug ...