我是Grails的新手(但不是Groovy或网站开发)。
我正在尝试编写一个接受REST请求的Web应用程序。我遇到的问题是,尽管有以下情况 - 据我所知 - 文档,我仍然会在遇到我认为正确的URL时收到404.
详情如下。
该项目是全新的(使用Grails 1.3.3和Intellij IDEA 9.0.3,支持1.3.3)
一个非常简单的测试控制器:
package com.myproject
class TestController {
def index = { }
def list = {
System.out.println("params = " + params);
}
def save = {
System.out.println("params = " + params);
}
}
和同样的URL映射,尝试将所有GET请求映射到控制器的list()方法。根据文档和Grails in Action一书,映射中的“test”控制器名称将映射到TestController。
class UrlMappings {
static mappings = {
"/test" (controller: "test") {
action = [ GET: "list", POST: "save" ]
}
"/"(view:"/index")
"500"(view:'/error')
}
}
应用程序在myapp上下文中在Tomcat6中成功部署(展开)(我在根目录中有一个静态html,我可以成功显示)。
下面包含了apache-tomcat-6.0.28 \ webapps \ myproject(如果重要)的内容。我剥夺了非必要的东西。部署控制器类,对于UrlMappings类也是如此。
对以下变体的所有HTTP请求
http://localhost:8080/myproject/test/list
http://localhost:8080/myproject/test/list/
http://localhost:8080/myproject/test/
http://localhost:8080/myproject/test
返回404.要么是一个奇怪的错误,要么更可能是一个我失明的简单错误。
感谢您的帮助。谢谢!
| index.html
| mysql-connector-java-5.1.13-bin.jar
|
\---WEB-INF
| applicationContext.xml
| sitemesh.xml
|
+---classes
| | BootStrap$_closure1.class
| | BootStrap$_closure2.class
| | BootStrap.class
| | Config$_run_closure1.class
| | Config$_run_closure1_closure3.class
| | Config$_run_closure1_closure4.class
| | Config$_run_closure1_closure5.class
| | Config$_run_closure2.class
| | Config.class
| | resources$_run_closure1.class
| | resources.class
| | UrlMappings$__clinit__closure1.class
| | UrlMappings$__clinit__closure1_closure2.class
| | UrlMappings.class
| |
| +---com
| | \---myproject
| | TestController$_closure1.class
| | TestController$_closure2.class
| | TestController$_closure3.class
| | TestController.class
| |
| \---org
| \---grails
| \---tomcat
| ParentDelegatingClassLoader.class
| SearchFirstURLClassLoader.class
| TomcatLoader.class
| TomcatServer$_preStart_closure3.class
| TomcatServer$_preStart_closure3_closure5.class
| TomcatServer$_start_closure1.class
| TomcatServer$_start_closure1_closure4.class
| TomcatServer$_start_closure2.class
| TomcatServer.class
| TomcatServerFactory.class
|
+---lib
| catalina-ant.jar
| grails-tomcat-plugin-1.0.jar
| jasper-jdt.jar
| mysql-connector-java-5.1.13-bin.jar
| tomcat-dbcp.jar
| tomcat-jasper.jar
| tomcat-juli-adapters.jar
| tomcat-juli.jar
|
\---tld
grails.tld
spring.tld
答案 0 :(得分:5)
它返回404错误,因为没有与任何操作关联的视图。
应用程序没有任何内容可以呈现......
更改您的控制器代码
class TestController {
def index = { }
def list = {
render("params = " + params);
}
def save = {
render("params = " + params);
}
}
你会看到一些输出