9

这个今天让我发疯了。由于升级到 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 映射正在工作。有什么线索吗??

4

2 回答 2

8

我认为这与 Weblogic 更相关——我在 Weblogic 9.2 上看到了同样的情况——但在 Tomcat 或 Jetty 上没有。没有打到我的 UrlMapping:

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

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

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

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

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

于 2010-01-20T01:24:25.240 回答
1

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

于 2010-01-16T14:28:49.900 回答