【问题标题】:Default Grails '/' controller mapping not resolving properly默认 Grails '/' 控制器映射未正确解析
【发布时间】:2010-01-16 03:14:45
【问题描述】:

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

【问题讨论】:

    标签: grails groovy weblogic weblogic-10.x


    【解决方案1】:

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

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

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

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

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

    这似乎可以解决问题。谁有更好的方法来解决这个问题???

    【讨论】:

    • 谢谢伙计,哇,你让我开心!我今天晚些时候在 Jira 中注册了一个错误
    • 此解决方法也适用于 wildfly8 .war 部署,否则在访问根目录时会显示 index.gsp not found:"/index.gsp"(view:"/index")
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-09-10
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2018-03-29
      • 2019-09-24
      • 2015-04-13
      • 2016-09-17
      相关资源
      最近更新 更多