2017-04-26 75 views
0

我正在使用scala和slick的playframework。在scala中調用控制器的方法時出現問題

在我的DTO(DAO)

我這樣做:

class processDTO @Inject() (protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile] 
    with ProcessTemplatesComponent { 
    import driver.api._ 

    private val processTemplates = TableQuery[ProcessTemplates] 

    def getAll(): Future[Seq[ProcessTemplatesModel]] = db.run { processTemplates.to[Seq].result } 
} 

,並在控制器我這樣做:

@Singleton 
class ProcessesController @Inject() (processDTO: processDTO, actionBuilder: ActionBuilders) extends Controller{ 

    def getProcesses() = actionBuilder.DynamicAction(name = "pureLuck").defaultHandler() { 
    request => 
     processDTO.getAll().map(_.map(result => { 
     })) 
     .map(result => Ok(Json.toJson(result))) 
    } 
} 

,現在我得到這個錯誤 enter image description here

enter image description here

+0

複製和粘貼錯誤有什麼問題? – pedrofurla

回答

1

該錯誤告訴你你需要知道什麼。在文件頂部添加導入scala.concurrent.ExecutionContext.Implicits.global應該修復它。

+0

謝謝,但我認爲那不是全部;)添加了以上錯誤以下錯誤 – Felix

2

首先你需要導入執行上下文。 PlayFramework有他自己的上下文。收藏此進口play.api.libs.concurrent.Execution.Implicits._Play documentation

還需要從塊的這段代碼返回的東西:

_.map(result => {}) 

目前返回單位這可不會轉變成json。

1

一個問題是缺乏執行上下文,正如其他人所提到的。

從您的json錯誤開始,您需要實現一個Write converter以將您的ProcessTemplatesModel對象轉換爲json。

相關問題