现有控制器URL的HTTP状态404

时间:2015-01-15 11:30:46

标签: grails controller http-status-code-404

我在名为RH的包中的grails项目中添加了一个名为Authorization的新域类。

然后我从grails菜单自动生成控制器和视图。

但是当我尝试输入控制器http://localhost:8080/RH/Authorization/list的网址时,apache会显示HTTP Status 404 - /RH/Authorization

type Status report

message /RH/Authorization

description The requested resource (/RH/Authorization) is not available.

我刷新项目并重新启动apache但仍然存在同样的错误。 还有另一件事要解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果您运行generate-allgenerate-controller脚本,则生成的控制器名称将为AuthorizationController.groovy,并且控制器的自动映射URL的约定是删除" Controller"从类名(是的,这确实会让你回到域类名,但是控制器可以独立于任何域类存在,并且你不需要控制器和域类名来共享任何东西)和生成"属性"从中得名。通常这只涉及对第一个字母进行下限,但如果名称以两个或多个大写字母开头,那么您就不会改变任何内容。

类名对生成的URL没有影响的包。但是如果在运行create-domain-class脚本时没有指定包名,它将使用项目名称作为包,默认上下文也与项目名称相同,所以它看起来像使用包名称。

你真的使用Apache(httpd)吗?还是Apache Tomcat?如果你正在使用Apache,那么上下文取决于你如何连接Apache和Apache正面对的servlet容器(Tomcat,Jetty,WebLogic等)

假设您自己使用Tomcat,则上下文基于已部署的war文件的名称,如果您正在使用grails run-app并使用嵌入式Tomcat服务器,那么它就是&#39 ; s基于项目名称。

所以我猜测核心问题是"授权"应该是"授权"。此外," RH"可能是不正确的,但希望根据我上面所说的,你可以弄清楚应该是什么。