播放样本休息申请问题

时间:2011-06-07 06:39:38

标签: playframework resteasy

我创建了一个测试应用程序并创建了hello rest easy类。然后我尝试使用play run test运行并获得此异常:

21:46:18,246 INFO  ~ RESTEasy plugin: Found resource class: resources.HelloResource
21:46:18,482 WARN  ~ NoClassDefFoundError: Unable to load builtin provider: org.jboss.resteasy.plugins.providers.jackson.ResteasyJacksonProvider
21:46:18,564 INFO  ~ RESTEasy plugin: RESTEasy started
21:46:18,570 INFO  ~ Application 'test' is now started !
21:46:30,083 ERROR ~

@66i4nnpj8
rest.hello action not found

Action not found
Action rest.hello could not be found. Error raised is Controller controllers.rest not found

play.exceptions.ActionNotFoundException: Action rest.hello not found
        at play.mvc.ActionInvoker.getActionMethod(ActionInvoker.java:436)
        at play.mvc.ActionInvoker.invoke(ActionInvoker.java:76)
        at Invocation.HTTP Request(Play!)
Caused by: java.lang.Exception: Controller controllers.rest not found
        ... 3 more

有谁知道问题是什么?

3 个答案:

答案 0 :(得分:1)

如果您在路径文件末尾(/{controller}/{action}路线之后)定义了resteasy路线,那么您就会遇到此问题。 尝试在文件开头移动resteasy路由声明。

答案 1 :(得分:0)

我有一个完整的应用程序完全使用Play的RESTEasy模块。它可以帮助您设置自己:https://github.com/feliperazeek/play-github-api-demo

答案 2 :(得分:0)

相当陈旧的问题,但是当我尝试使用play编写我的第一个REST服务时,我也遇到了这个问题,所以如果其他人来到这里,我会发布我的问题。

实际上,我没有意识到我需要在一个新项目上运行eclipsify。在新项目中生成第一个REST服务的步骤实际上是:

  • 确保您引用了正确的游戏jar ...

  • 将REST路径添加到routes文件中。像这样:

    GET   /gimmeStuff     Application.gimmeStuff
  • 将方法添加到适用的控制器(在我的情况下是应用程序)。如果一切正确,你的课程将会是这样的:

    public class Application extends Controller {
        public static void gimmeStuff() {
            renderText("STUFF!");
        }
    }
  • 最后......如果您还没有这样做,请对您的项目运行eclipsify:

    play eclipsify MyFirstRestProject

完成上述所有操作后,我的问题就消失了。