2014-10-28 17 views
0

我不知道從哪裏開始調試。使用Slick和SecureSocial玩2.3.5。因爲這條路線加入編譯器指出它和錯誤,這樣模糊隱含在播放中

GET  /activity/   controllers.ActivitiesController.show(id: Int) 

一旦:直到我寫的第一個接受參數

我的路線是工作的罰款

ambiguous implicit values: [error] both method wrapJava in object HandlerInvokerFactory of  type => 
play.core.Router.HandlerInvokerFactory[play.mvc.Result] 
[error] and method wrapJavaPromise in object HandlerInvokerFactory of type => 
play.core.Router.HandlerInvokerFactory[play.libs.F.Promise[play.mvc.Result]] 
[error] match expected type play.core.Router.HandlerInvokerFactory[T] 
+0

'HandlerInvokerFactory [play.mvc.Result]' - 爲什麼會有play.mvc.Result這是java api? – roterl 2014-10-28 06:05:55

回答

0

路線文件不是Scala,只能編譯到Scala。因此,您使用的語法不正確。你寫什麼:

GET  /activity/   controllers.ActivitiesController.show(id: Int) 

也許應該是這樣的:

GET  /activity/:id   controllers.ActivitiesController.show(id: Int) 

,然後你ActivitiesController應該有:

class ActivitiesController extends Controller { 
    def show(id: Int) = Action { ... } 
} 

注意路徑組件:id。這指示路由編譯器期望在URL路徑中的那一點上可以隱式轉換爲Int的字符串。然後執行轉換並將整數參數傳遞給控制器​​的show方法。你可能會受益於reading the documentation

4

嗯,我不確定你是否處於@rspencer提到的情況。

我在另一種情況相同的錯誤消息:

Controller,當我試圖做一個Action未實現與方法???這樣的:

def test = ??? 

然後我打開瀏覽器,訪問http://localhost:9000,一個錯誤消息出現:

曖昧隱含值: 兩個方法wrapJa va在類型=> play.core.routing.HandlerInvokerFactory的對象HandlerInvokerFactory中的[play.mvc.Result] 和方法wrapJavaPromise在類型=> play.core.routing.HandlerInvokerFactory的對象HandlerInvokerFactory中[play.libs.F.Promise [play .mvc.Result] 比賽有望類型play.core.routing.HandlerInvokerFactory [T]

如果你在這種情況下,僅僅指剛在???改變TODO這樣的:

def test = TODO 

Revist http://localhost:9000,現在沒事了。

+0

謝謝!自從我認爲'???'和'TODO'是同義詞時,我遇到了同樣的問題。雖然我可以找到['???']的定義(https://github.com/scala/scala/blob/v2.11.8/src/library/scala/Predef.scala#L230),但是我不能似乎找到'TODO'來自哪裏。有任何想法嗎? – Eric 2016-08-02 14:45:29

+0

無法編輯我以前的評論,但我回答了我自己的問題。 ['???']的定義(https://github.com/scala/scala/blob/v2.11.8/src/library/scala/Predef。scala#L230)被燒入Scala,而['TODO'](https://github.com/playframework/playframework/blob/d6c2673d91d85fd37de424951ee5ad9f4f4cce98/framework/src/play/src/main/scala/play/api/mvc/ Controller.scala#L33-L35)來自Play。 – Eric 2016-08-02 14:53:41