现有控制器的 HTTP 状态 404 url

HTTP Status 404 for existing controller url

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

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

但是当我试图进入控制器http://localhost:8080/RH/Authorization/list的URL时,apache显示HTTP Status 404 - /RH/Authorization

type Status report

message /RH/Authorization

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

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

如果您 运行 generate-allgenerate-controller 脚本生成的控制器名称将是 AuthorizationController.groovy,并且控制器的自动映射 url 的约定是删除"Controller" 来自 class 名称(是的,这确实会让您回到域 class 名称,但是控制器可以独立于任何域 class 而存在,而您不不需要控制器和域 class 名称有任何共同点)并从中生成 "property" 名称。通常这只是将第一个字母小写,但如果名称以两个或更多大写字母开头,则您无需更改任何内容。

class名称对生成的url没有影响的包。但是如果在运行脚本的时候没有指定包名,create-domain-class脚本就会使用工程名作为包,默认的context也和工程名一样,所以可以似乎使用了包名。

您真的在使用 Apache (httpd) 吗?还是 Apache Tomcat?如果您使用的是 Apache,则上下文取决于您如何连接 Apache 和 Apache 面向前端的 servlet 容器(Tomcat、Jetty、WebLogic 等)

假设您单独使用 Tomcat,上下文基于部署的 war 文件的名称,如果您使用 grails run-app 并使用嵌入式Tomcat服务器,以项目名为准

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