2017-01-07 2 views
-1

Dans Services, j'appelle le service de point de terminaison et la réponse est obtenue en tant que résultat Future []. Je dois envoyer le résultat futur aux contrôleurs. Dans Controllers, je devrais répondre au résultat via Ok (réponse).Comment recevoir Future [] Réponse des résultats dans les contrôleurs, j'ai eu une erreur dans les contrôleurs comme réel: avenir [résultat] attendu Action Résultat?

//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

Quel est le problème? – Nyavro

+0

Dans le contrôleur, j'ai eu l'erreur Contrôleurs comme réel: Futur [Résultat] attendu Action Résultat? – user3278612

Répondre

0

Vous devez convertir votre ws.WSResponse en mvc.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)) 
    } 
}