我是新來玩框架和AKKA,我是一個Java開發人員。我使用Play 2.3.7和IntelliJ 14.我調用了Pattern.ask,並返回一個Future對象,它具有來自Web服務調用的字符串。通過控制檯,我可以發現我的演員能夠接收請求並執行操作。我不知道如何解析它。我正嘗試通過使用Await.result來讀取未來。但是,這個等待結果期待等待的對象。如果我傳遞Future對象,它會引發編譯器異常。請幫忙。玩Java Akka - 等待.result期待等待的對象,不接受未來<Object>
public Result invoke(String message) {
try {
System.out.println("invoke ");
MySampleMessage msg = new MySampleMessage(message);
System.out.println(msg.getMessage());
Future<Object> futr = (Future<Object>) Patterns.ask(myActor, msg, localConfig.getTimeOut());
System.out.println("invoke 1");
////Promise<Object> promise = Promise.wrap(futfure);
String msg1 = Await.result(futr, Duration.create(10, TimeUnit.MILLISECONDS));
System.out.println("invoke 2 ");
return play.mvc.Results.ok("Success " + msg1);
}
catch(Exception e)
{
return (play.mvc.Results.ok("Exception"));
}
}
是否有任何其他方式來解析從async
演員迴應迴應?
究竟是什麼樣的編譯器異常?因爲如果它是「類型不匹配」,您只需將'Await.result'值轉換爲類似的字符串即可。 'String msg1 =(String)Await.result(...)'。 – m4ktub
我收到了一個類似於 - 期待的等待的錯誤,但在Await.result的aruement {1}處發現了scala.concurrent.Future –
dhana