路由未编译到子路由文件中
Route not compiled in sub route file
我正在使用 Play 2.3.7 开发应用程序。
我有这个 routes
文件:
GET /api-docs controllers.ApiHelpController.getResources
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /swagger-ui/*file controllers.Assets.at(path="/public/swagger-ui", file)
-> /v1/episodes model_v1_episodes.Routes
-> /v1/seasons model_v1_seasons.Routes
-> /v1/series model_v1_series.Routes
我还有每个模型的 model_v1_*
个文件,以避免路径文件太长。这是其中之一
GET / controllers.EpisodeController.list()
GET /:key controllers.EpisodeController.load(key: String)
POST / controllers.EpisodeController.create()
DELETE /:key controllers.EpisodeController.delete(key: String)
问题是,当我想测试 EpisodeController.list()
时,我不能,因为 EpisodeController
不存在...
@Test
public void list() {
Result result = callAction(controllers.routes.ref.EpisodeController.list(), new FakeRequest());
// Assertions on result...
}
如果我在 target/scala-2.10/src_managed/main/controllers/routes.java
中手动检查,则没有 EpisodeController
的痕迹,而它存在于 controllers
包中。当我 run
我的应用程序并使用 Swagger 进行测试时,一切正常。
1 activator clean compile
2 activator eclipse
如果它没有帮助 运行 在调试模式下测试:
- activator -jvm-debug 测试并检查问题所在...
也许日志会告诉您更多信息(来自 cmd 和来自应用程序)
正如@Mikesname 在对该问题的评论中所解释的那样,问题是我的控制器在 controllers
包中。
我将它们放入 controllers.mypackage
并将我的文件命名为 mypackage.routes
,一切正常。
我正在使用 Play 2.3.7 开发应用程序。
我有这个 routes
文件:
GET /api-docs controllers.ApiHelpController.getResources
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /swagger-ui/*file controllers.Assets.at(path="/public/swagger-ui", file)
-> /v1/episodes model_v1_episodes.Routes
-> /v1/seasons model_v1_seasons.Routes
-> /v1/series model_v1_series.Routes
我还有每个模型的 model_v1_*
个文件,以避免路径文件太长。这是其中之一
GET / controllers.EpisodeController.list()
GET /:key controllers.EpisodeController.load(key: String)
POST / controllers.EpisodeController.create()
DELETE /:key controllers.EpisodeController.delete(key: String)
问题是,当我想测试 EpisodeController.list()
时,我不能,因为 EpisodeController
不存在...
@Test
public void list() {
Result result = callAction(controllers.routes.ref.EpisodeController.list(), new FakeRequest());
// Assertions on result...
}
如果我在 target/scala-2.10/src_managed/main/controllers/routes.java
中手动检查,则没有 EpisodeController
的痕迹,而它存在于 controllers
包中。当我 run
我的应用程序并使用 Swagger 进行测试时,一切正常。
1 activator clean compile
2 activator eclipse
如果它没有帮助 运行 在调试模式下测试:
- activator -jvm-debug 测试并检查问题所在...
也许日志会告诉您更多信息(来自 cmd 和来自应用程序)
正如@Mikesname 在对该问题的评论中所解释的那样,问题是我的控制器在 controllers
包中。
我将它们放入 controllers.mypackage
并将我的文件命名为 mypackage.routes
,一切正常。