我创建了一个测试应用程序并创建了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
有谁知道问题是什么?
答案 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
完成上述所有操作后,我的问题就消失了。