2017-01-31 6 views
0

Es gibt eine Klasse WebClient and ClientRequest im Frühjahr Web-reaktiv. Wenn wir in der Dokumentation nachsehen, ist der Weg zum ClientRequest mit dem WebClient.Spring-Boot-Starter-Web-reaktive M4 Abhängigkeit

WebClient client = WebClient.create(new ReactorClientHttpConnector()); 
ClientRequest<Void> request =  ClientRequest.GET("http://example.com/resource").build(); 

Mono<String> result = client 
.exchange(request) 
.then(response -> response.bodyToMono(String.class)); 

Aber leider ClientRequest.GET Methode ist mit der gradle Abhängigkeit nicht verfügbar ich in meinem Projekt hinzugefügt haben. Unten ist die Graddle Abhängigkeit die ich verwende:

dependencies { 
    compile('org.springframework.boot.experimental:spring-boot-starter-web-reactive') 
    compile('org.springframework.cloud:spring-cloud-starter-eureka') 
    compile('org.springframework.boot:spring-boot-starter-hateoas') 
    compile('io.reactivex:rxjava') 
    compile('io.reactivex:rxjava-reactive-streams') 
    //Spring Test case dependency 
    testCompile("org.springframework.boot:spring-boot-starter-test") 
    testCompile('io.rest-assured:rest-assured:3.0.1') 
} 

dependencyManagement { 
    imports { 
     mavenBom "org.springframework.cloud:spring-cloud-dependencies:Dalston.BUILD-SNAPSHOT" 
     mavenBom "org.springframework.boot.experimental:spring-boot-dependencies-web-reactive:0.1.0.BUILD-SNAPSHOT" 
    } 
} 

Ich konnte die Abhängigkeiten für M4 nicht finden. Wird M4 irgendwo in einem Repository veröffentlicht?

Antwort

0

Dieser Spring Boot-Starter hängt von den aktuellen Spring Framework 5.0 SNAPSHOTs ab. Die WebClient API wurde vor kurzem entwickelt und the reference documentation should be up-to-date.

Ihr Beispiel kann jetzt geschrieben werden:

WebClient client = WebClient.create("http://example.com/"); 

Mono<String> result = client 
    .get("/resource") 
    .exchange() 
    .then(response -> response.bodyToMono(String.class)); 
+0

Dank @Brain für Ihre Antwort. Ich konnte den WebClient verwenden, aber jetzt gibt es ein anderes Problem. Wenn vom Remote-Dienst eine Fehlerreaktion erfolgt, werden die vom Remote-Dienst gesendeten Daten nicht bereitgestellt. Ich rufe einen Mikroservice von meinem reaktiven Ruhe-Controller und im Fehlerfall übergibt er nur den HttpStatus an meinen Ruhe-Controller. Sie finden die Details hier http://stackoverflow.com/questions/42045267/calling-micro-service-using-webclient-sprint-5-reactor-web –

0

Sie richtige Repository konfigurieren. M4, d. H. Meilensteine-Projekte befinden sich nicht im selben Repository wie General-Releases. Tatsächlich hat Spring ein separates Repository für Snapshot-Versionen. Prüfen Spring Repositories

Für Meilenstein Versionen verwenden unter Repository:

buildscript { 
    repositories { 
     jcenter() 
     maven { url 'http://repo.spring.io/milestone' } 
    } 
} 
Verwandte Themen