0

我已将我的应用程序部署到运行 tomcat6 的 ubuntu 服务器上。我通过 WAR 文件进行了部署,并将其重命名为 ROOT。当我转到基本 url 时,我收到一个 404 错误,提示找不到“index.jsp”。我在 grails 常见问题解答网站上发现,这意味着它已经尝试找到 gsp 但无法找到它 - 但是,我已经在提取的战争中验证它确实存在,确实存在。

我的默认设置指向一个调用的 HomeController,并且在提取的 WAR 下的视图文件夹中index()一个对应的。/home/index.gsp

现在为了增加一些混乱,我有另一个控制器ContactController和相同的视图设置(即 Contact/index.gsp),并且可以工作!事实上,在我拥有的 5 个控制器中,它是唯一一个显然可以找到视图的控制器,即使每个视图都index.gsp在各自的视图文件夹中命名。

我不确定它是否与应用程序本身有关,因为它使用运行应用程序工作(尽管我当然不会排除它)。我的猜测是它与服务器相关,但所有文档都说在/webapps/目录中简单地删除 WAR 并重新启动。

有什么建议么?

更新UrlMappings.groovy::

class UrlMappings {

    static mappings = {
        "/$controller/$action?/$id?"{
            constraints {
                // apply constraints here
            }
        }

        "/"(controller:"home", action:"index")
        "500" (view: '/error')
    }
}

确切的错误:

请求的资源(/WEB-INF/grails-app/views/home/index.jsp)不可用

4

3 回答 3

4

我们最近遇到了这个问题。确保您的控制器位于与目录结构相对应的正确包中。

例如:

package com.mypackage

class HomeController {
   def index = {
   }
}

位于./grails-app/controllers/com/mypackage中。

于 2012-10-18T17:50:07.020 回答
1

如果您在根映射中命名动作以及控制器,它会起作用吗?

"/"(controller:"home", action:"index")
于 2012-07-13T00:04:40.257 回答
0

您必须将 'allowLinking="true" ' 属性添加到 context.xml 文件中的 Context 标记

您可以在 ${TOMCAT_HOME}\conf 文件夹中看到该 context.xml 文件

于 2015-09-09T09:45:36.203 回答