2010-01-16 49 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 ...