代码之家  ›  专栏  ›  技术社区  ›  mbrevoort

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

  •  9
  • mbrevoort  · 技术社区  · 15 年前

    今天这个让我发疯了。自从升级到Grails1.2和WebLogic10.3之后,“/”的默认根映射就停止工作了。这是我的…

    我有这个URL映射:

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

    我有一个名为igiveController的控制器,它有一个索引闭包

    def index = {
        render "foo"
    }
    

    当我进入在嵌入式Tomcat和Jetty中运行的应用程序时, http://localhost:8080/mycontext/ 我得到“foo”归还的财产。但当我建立一场战争并部署到WebLogic10.3时,我得到404。

    我降级到了Grails1.1.2,但它在WebLogic10.3上仍然不起作用,但错误更具描述性。

    Could not open ServletContext resource [/WEB-INF/grails-app/views/index.gsp] 
    

    所以看起来它完全忽略了我对“/”的URL映射,但是其他更深层次的URL映射正在工作。有什么线索吗??

    2 回复  |  直到 10 年前
        1
  •  8
  •   spidie    15 年前

    我认为这与WebLogic更相关——我在WebLogic9.2上也看到了这一点——但在Tomcat或Jetty上却没有。别碰我的冲浪板:

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

    我认为WebLogic很聪明,它正在转换/->index.gsp,然后又变回404。

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

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

    这似乎也起到了作用。有人有更好的方法来解决这个问题吗?你说什么?

        2
  •  1
  •   fabien7474 Jan Tchärmän    15 年前

    它可能与Grails1.2错误有关。见 GRAILS-5609 而这 thread 在圣杯论坛。固定在1.2.1中。似乎1.2引入了一些带有urlmapping的回归错误…