2010-07-22 1 views
5

Grails를 처음 접했지만 (Groovy 또는 웹 개발이 아님).REST URL 매핑이 작동하지 않습니다. (Grails 1.3.3, Tomcat6)

REST 요청을 허용하는 웹 앱을 작성하려고합니다. 내가 가지고있는 문제는 다음과 같은 내용에도 불구하고 - 내가 말할 수있는 한 - 문서화, 나는 올바른 URL이라고 믿는 것을 때릴 때 여전히 404를 받는다.

세부 사항은 다음과 같습니다.

이 프로젝트는 아주 새로운 (Grails는 1.3.3을 사용하고 1.3.3를 지원하게 IntelliJ IDEA 9.0.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() 메서드에 매핑하려고 시도합니다. docs와 Grails in Action 책에 따르면 매핑의 "테스트"컨트롤러 이름은 TestController에 매핑됩니다.

class UrlMappings { 

static mappings = { 

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

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

} 응용 프로그램을 배포

는 myapp와 컨텍스트 (내가 성공적으로 표시 할 수있는 루트에 정적 HTML을)에서 Tomcat6에서 성공적으로 (폭발).

apache-tomcat-6.0.28 \ webapps \ myproject (문제가있는 경우) 내용이 아래에 포함되어 있습니다. 나는 필수가 아닌 것들을 벗겼다. 컨트롤러 클래스는 UrlMappings 클래스와 동일하게 배포됩니다. 다음과 같은 변화

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

반환 (404) 중 하나에

모든 HTTP 요청은 가능성이 이상한 버그, 나는 장님하는 간단한 오류입니다.

귀하의 도움에 감사드립니다. 고맙습니다!

| 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 

답변

5

동작과 관련된보기가 없기 때문에 404 오류가 반환됩니다. 렌더링하는 응용 프로그램에 대한 아무것도

...

일부 출력이 표시됩니다

class TestController { 

    def index = { } 

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

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

} 

변화 컨트롤러 코드