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) {
..
}
}