play 이제 시작한지 일주일이다. 잘 모르면서 쓰고 있다. ^^;;;;;;;;

play의 controller 인 Application에서 index 메소드를 호출할 때 test 메소드를 호출하고 rendering하면 에러가 발생한다. 


10 public class Application extends Controller {

 11

 12     public static void index() {

 13         test();

 14     }

 15

 16     public static void test() {

 17       render();

 18     }

 19

 20 }




에러의 내용은 다음과 같다. 


Template not found

The template Application/test.html does not exist.



play.exceptions.TemplateNotFoundException: Template not found : Application/test.html

at play.mvc.Controller.renderTemplate(Controller.java:668)

at play.mvc.Controller.renderTemplate(Controller.java:641)

at play.mvc.Controller.render(Controller.java:696)

at controllers.Application.test(Application.java:17)

at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:557)

at play.mvc.ActionInvoker.invoke(ActionInvoker.java:508)

at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:484)

at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:479)

at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)

at Invocation.HTTP Request(Play!)



=> 코드는 서로간의 호출이 있을 수 없도록 해야 한다.

10 public class Application extends Controller {

 11

 12     public static void index() {

 13         render();

 14     }

 15

 16     public static void test() {

 17       render();

 18     }

 19

 20 }




그리고, play framwork 와 yarouter를 이용해서 사용하는 경우에도 마찬가지이다. 똑같이 에러가 발생한다. 


public class UserController {

..

@Get("/user/{userId}) 

public static void getUser(String userId) {

   getuserSeo(userId);

}


@Get("/user/seo/{userId}")   // 나중에 오픈할 url 

public static void getUserSeo(String userId) {

...

}


}



에러 내용은 다음과 같다.



[r.ResponseUtils$ErrorResult] logErrorMessage (111): play.exceptions.NoRouteFoundException: No route found




Caused by: play.exceptions.NoRouteFoundException: No route found

at play.mvc.Controller.redirect(Controller.java:602) ~[play-1.2.5.3.jar:na]

at play.mvc.Controller.redirect(Controller.java:544) ~[play-1.2.5.3.jar:na]




-> 코드는 아래와 고쳐져야 한다. (사실 추후 오픈할 때 사용하려고 했는데.. 나중에 오픈할 때 private을 public으로 수동으로 고쳐야 할 것 같음)


public class UserController {

..

@Get("/user/{userId}) 

public static void getUser(String userId) {

   getuserSeo(userId);

}


@Get("/user/seo/{userId}")  // 나중에 오픈할 url

private static void getUserSeo(String userId) {

..

}


}



Posted by '김용환'
,