2017-01-07 2 views
-1

サービスでは、エンドポイントサービスを呼び出し、Future [] Resultとして応答しました。私はFuture []の結果をコントローラに送る必要があります。コントローラでは、私はOK(応答)を介して結果に応答する必要があります。将来の[]コントローラの結果レスポンスを受信するには、実際のコントローラのようにエラーが発生しました。

//In Controllers i have to receive the response from Services and have to 
send the success or failure response. 

def postLead = Action.async { lead => 
    val isSuccess = service.postToFreedom(lead).map{ response => 
     Ok(response) 
    } 
} 

//In Services,i am hitting the end point service and got the response as Future[] 

private def postToFreedom(postXML:Request): Future[WSResponse] = { 
    val leadXml = FreedomMortgageXML(postXML).toXml 
    val response = ws.url(serviceEndpoint).withHeaders("Content-Type" -> "application/xml").post(leadXml) 

    response.map { response => 
    response 
} 
+0

問題は何? – Nyavro

+0

コントローラでは、私は実際にコントローラのようなエラーがあります:未来[結果]期待されたアクション結果? – user3278612

答えて

0

あなたのws.WSResponsemvc.Resultに変換する必要があります。

def postLead = Action.async { lead => 
    service.postToFreedom(lead).map{ wsResponse => 
    val headers = wsResponse.allHeaders map { 
     h => (h._1, h._2.head) 
    } 
    Result(ResponseHeader(wsResponse.status, headers), Strict(wsResponse.bodyAsBytes, None)) 
    } 
} 
関連する問題