2010-07-22 17 views
5

Soy nuevo en Grails (pero no en Groovy ni en desarrollo web).RESTO Las asignaciones de URL no funcionan (Grails 1.3.3, Tomcat6)

Estoy intentando escribir una aplicación web que acepte solicitudes de REST. El problema que tengo es que, a pesar de seguir, por lo que puedo decir, la documentación, aún recibo 404 cuando pulso lo que creo que es la URL correcta.

Los detalles son los siguientes.

El proyecto es nuevo (usando Grails 1.3.3 y IntelliJ IDEA 9.0.3 que soporta 1.3.3)

Un controlador de prueba muy simple:

package com.myproject 

class TestController { 

    def index = { } 

    def list = { 
    System.out.println("params = " + params); 
    } 

    def save = { 
    System.out.println("params = " + params); 
    } 

} 

y el mapeo igualmente URL , intentando asignar todas las solicitudes GET al método list() del controlador. De acuerdo con los documentos y el libro Grails in Action, el nombre del controlador de "prueba" en la asignación se asignará a TestController.

class UrlMappings { 

static mappings = { 

     "/test" (controller: "test") { 
      action = [ GET: "list", POST: "save" ] 
     } 

"/"(view:"/index") 
"500"(view:'/error') 
} 

}

se despliega la aplicación (explotaron) con éxito en Tomcat6 en el contexto miaplicacion (tengo un HTML estático en la raíz que puedo mostrar con éxito).

El contenido de apache-tomcat-6.0.28 \ webapps \ myproject (si corresponde) se incluye a continuación. Deshice las cosas no esenciales. La clase del controlador se implementa, lo mismo para la clase UrlMappings.

todas las peticiones HTTP a las siguientes variaciones

http://localhost:8080/myproject/test/list 
http://localhost:8080/myproject/test/list/ 
http://localhost:8080/myproject/test/ 
http://localhost:8080/myproject/test 

retorno 404. Ninguno de ellos es un bicho raro o, más probablemente, un simple error al que estoy ciego.

Su ayuda es apreciada. ¡Gracias!

| 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 

Respuesta

5

devuelve un error 404 porque no hay vista asociada a ninguna de las acciones.

no hay nada para la aplicación para hacer ...

cambiar el código de controlador de

class TestController { 

    def index = { } 

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

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

} 

verá alguna salida

Cuestiones relacionadas