2015-11-17 3 views
2

Я использую akka с java и ищу способ использовать асинхронный Play WS api из актеров акки.Использовать игру WS 2.5.x от Акка Актер

В игре WS версий 2.4.x метода WSRequest.get() возвращает F.Promise, который легко может быть преобразован в Scala Future, а затем с водопроводной akka.pattern.Patterns.pipe к некоторой АККЕ актеру, чтобы ответ HTTP должны быть принято в качестве сообщения об АККЕ.

В игре WS 2.5.x метод WSRequest.get() возвращает CompletionStage, который я не могу понять, как передать его актеру Акка.

Итак, как правильно использовать игру WS 2.5.x api из аккордов Akka?

ответ

4

От migration guide:

Хотя Play 2,4 был кросс скомпилированы как Scala 2.10 и Scala 2.11 В новой версии игры доступен только для Scala 2.11. Причиной отказа от поддержки Scala 2.10 является то, что Play имеет новую библиотеку зависимость от scala-java8-compat, которая доступна только для Scala 2.11. Эта библиотека упрощает преобразование из общих типов Scala и Java8 и, следовательно, имеет смысл упростить ядро ​​воспроизведения. Кроме того, вы также можете найти его удобным для использования в своем собственном проекте Play . Например, если вам нужно преобразовать экземпляры Scala Future в Java CompletionStage (или наоборот).

Я уверен you can still do it easy:

import static scala.compat.java8.FutureConverters.*; 

... 

final Promise<String> p = promise(); 
final Future<String> sf = p.future(); 
final CompletionStage<String> cs = toJava(sf); 
Future<String> sf1 = toScala(cs); 
Смежные вопросы