Как использовать play ws-библиотеку в обычном проекте sbt вместо игры?
Когда я попытался использовать библиотеку Play WS в обычном проекте sbt вместо проекта воспроизведения, мне пришлось использовать play.api.Play.current и получил java.lang.RuntimeException: "Нет запущенного приложения" при попытке запустить приложение.
Ответы
Ответ 1
Чтобы использовать play-ws вне игры, см. раздел "Использование WSClient" в документации: http://www.playframework.com/documentation/2.3.x/ScalaWS
val builder = new com.ning.http.client.AsyncHttpClientConfig.Builder()
val client = new play.api.libs.ws.ning.NingWSClient(builder.build())
val response = client.url(url).get()
Ответ 2
Использование в 2.4.x
import play.api.libs.ws.ning.NingWSClient
val wsClient = NingWSClient()
wsClient.url("http://wwww.something.com").get()
build.sbt:
libraryDependencies += "com.typesafe.play" %% "play-ws" % "2.4.3"
Использование в 2.5.x
import play.api.libs.ws.ahc.AhcWSClient
implicit val actorSystem = ActorSystem()
implicit val materializer = ActorMaterializer()
wsClient.url("http://wwww.something.com").get()
//at the very end, to shutdown stuff cleanly :
wsClient.close()
actorSystem.terminate()
build.sbt:
libraryDependencies += "com.typesafe.play" %% "play-ws" % "2.5.4"
Журналы
Как отмечалось в комментарии, по умолчанию вы можете получить кучу подробных журналов, исходящих из базового async-http-client. Один из способов исправить это - начать настройку logback.xml и поместить его в src/main/resources
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- The logging pattern, you might want to adapt it -->
<pattern>%d %coloredLevel %t - %logger - %message%n%xException</pattern>
</encoder>
</appender>
<!-- Here you can change the levels of specific loggers -->
<logger name="somelogger" level="INFO" />
<!-- Default logging level for every logger -->
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>