今天这个让我疯狂。自从升级到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映射正在起作用。任何线索??
答案 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中引入了一些回归错误......