我正在使用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測試。
嘗試將子路徑中引用的控制器放置在各自獨立的程序包中。否則,路由編譯器將覆蓋生成的主路由。 https://github.com/playframework/playframework/issues/1036 – Mikesname 2015-02-10 12:39:15