Montag, Mai 25, 2020

Wie verwende ich spielen ws Bibliothek in normalen sbt-Projekt statt spielen?

, Wenn ich habe versucht, mit Spielen WS-Bibliothek in einem normalen sbt-Projekt statt-play-Projekt, an dem ich gebunden war, zu spielen.api.Spielen.aktuelle und bekam java.lang.RuntimeException: „Es wird keine Anwendung gestartet“ wenn er versucht wird, um die Anwendung auszuführen.

InformationsquelleAutor pamu | 2014-07-22

2 Kommentare

  1. 17

    Wiedergeben-ws außerhalb von spielen finden Sie unter „Verwenden WSClient“ – Abschnitt der Dokumentation: 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()
    • Was ist die Abhängigkeit-Linie benötigt für die build.sbt / build.scala – Datei? Ist eine spezielle resolver notwendig?
    • versuchen (ungetestet): resolvers += "Typesafe Releases" at "https://repo.typesafe.com/typesafe/releases/" und "com.typesafe.play" %% "play-ws" % "2.3.7". (kleine Anmerkung: Spiel-ws hat eine Abhängigkeit zu spielen, so haben Sie das ganze Spiel framwork in Ihrem Projekt)
    • Weiß jemand, wie man deaktivieren, WS ist die ausführliche Protokollierung (Druck von allen die Antwort-Header) in diesem Szenario (also außerhalb des Spiels). Es macht es sehr schwer zu Debuggen, alles
  2. 34

    Verwendung in 2.4.x

    import play.api.libs.ws.ning.NingWSClient   
    
    val wsClient = NingWSClient()
    wsClient.url("http://wwww.something.com").get()

    bauen.sbt :

    libraryDependencies += "com.typesafe.play" %% "play-ws" % "2.4.3"

    Verwendung in 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()

    bauen.sbt :

    libraryDependencies += "com.typesafe.play" %% "play-ws" % "2.5.4"

    Protokolle

    Als jemand bemerkte, in den Kommentar, die standardmäßig erhalten Sie möglicherweise eine Reihe von ausführlichen Protokollen aus den zugrunde liegenden async-http-client. Ein Weg, um es zu beheben ist, um zu beginnen, die Konfiguration einer logback.xml, und legen Sie Sie in 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>
    • Danke. posting ein link zu einer sehr nützlichen Vergleich der HTTP-toolkits für Scala: implicitdef.com/2015/11/19/…
    • scheint bereits veraltet. Sie empfiehlt jetzt:spielen.api.libs.ws.ahc.AhcWSClient
    • Ich dachte, ich verwendet, um in der Lage sein, dies zu tun in sbt console aber ich sehe immer wieder: res23: scala.concurrent.Future[play.api.libs.ws.WSResponse] = List() als die Rückkehr von get.., !
    • ^^^ versuchen mit Await.result(), List() bedeutet, dass kein Wert existiert noch

Kostenlose Online-Tests