当前位置:  开发笔记 > 后端 > 正文

REST URL映射无法正常工作(Grails 1.3.3,Tomcat6)

如何解决《RESTURL映射无法正常工作(Grails1.3.3,Tomcat6)》经验,为你挑选了1个好方法。

我是Grails的新手(但不是Groovy或web开发人员).

我正在尝试编写一个接受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一书,映射中的"测试"控制器名称将映射到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

Aaron Saunde.. 5

它返回404错误,因为没有与任何操作关联的视图.

应用程序没有任何渲染...

更改您的控制器代码

class TestController {

  def index = { }

  def list = {
    render("params = " + params);
  }

  def save = {
    render("params = " + params);
  }

}

你会看到一些输出



1> Aaron Saunde..:

它返回404错误,因为没有与任何操作关联的视图.

应用程序没有任何渲染...

更改您的控制器代码

class TestController {

  def index = { }

  def list = {
    render("params = " + params);
  }

  def save = {
    render("params = " + params);
  }

}

你会看到一些输出

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有