默认Grails'/'控制器映射无法正确解析

时间:2010-01-16 03:14:46

标签: grails groovy weblogic weblogic-10.x

今天这个让我疯狂。自从升级到Grails 1.2和Weblogic 10.3以来,“/”的默认根映射停止了工作。这就是我的......

我有这个URL映射:

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

我有一个名为IGiveController的控制器,带有索引闭包

def index = {
    render "foo"
}

当我使用http://localhost:8080/mycontext/进入我在嵌入式Tomcat和Jetty中运行的应用程序时,我得到了“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 个答案:

答案 0 :(得分:8)

我认为这与Weblogic更相关 - 我在Weblogic 9.2上看到的相同 - 但在Tomcat或Jetty上却看不到。没有点击我的UrlMapping:

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

我认为Weblogic很聪明并且转换/ - > index.gsp然后以404发回。

有一个稍微丑陋的解决方法 - 只需添加这样的映射:

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

这似乎可以解决问题。任何人都有更好的方法来解决这个问题???

答案 1 :(得分:1)

它可能与Grails 1.2错误有关。请参阅Grails论坛中的GRAILS-5609和此thread。它在1.2.1中修复。似乎1.2在UrlMappings中引入了一些回归错误......