以来:
私はRESTで別のサービスを呼び出すためにWebクライアントを使用しようとしていますが、私は常にエラーが表示されます。
org.springframework.web.reactive.function.UnsupportedMediaTypeException:コンテンツタイプ「アプリケーション/ JSON」はサポートされません
すべての割り当てはポストマンは罰金を作品を通してリソースを呼び出し、依存関係の同じバージョンを持っています。最初のアプリケーションは、プロキシ(クライアント)として機能し、第二1(サービス)呼び出そうとした場合に問題があります
私のサーバーのリソース:
@RequestMapping(value = "/properties")
@PutMapping(consumes = APPLICATION_JSON_UTF8_VALUE)
@ResponseStatus(CREATED)
public void saveProperty(@Valid @RequestBody PropertyForm form) {
service.save(new PropertyImpl(form));
}
私のクライアントのリソース:
WebClient client = WebClient.create(serviceUrl);
Mono<Void> save(PropertyForm form) {
return client.put()
.uri("properties")
.contentType(MediaType.APPLICATION_JSON_UTF8)
.body(BodyInserters.fromObject(form))
.retrieve()
.bodyToMono(Void.class);
}
私のbuild.gradleファイル:
dependencies {
compile "org.springframework.boot:spring-boot-starter-reactor-netty:2.0.4.RELEASE"
compile "org.springframework.boot:spring-boot-starter-web:2.0.4.RELEASE"
compile "org.springframework:spring-webflux:5.0.4.RELEASE"
compile "javax.xml.bind:jaxb-api:2.3.0"
}
私は、JSONのcontentTypeを有効にするために、いくつかの依存関係足りませんか?この例は非常にシンプルでありながらも、私にとって非常に問題です。
フォームモデル:
class PropertyForm {
private String group;
private String key;
private String value;
// getters & setters
}
以来:
私は最終的に答えを発見しました。問題は、実際には、送信フォームにありました。フォームの範囲は、セッター/ゲッターと同じパッケージでした。私はAPIモジュールにPropertyFormを抽出し、すべてのものを公開してきた後、それが仕事に述べています。
だから、解決策をして、フォームを交換することでした。
public class PropertyForm {
private String group;
private String key;
private String value;
// public getters & setters
}
あなたの助けと時間をいただき、ありがとうございます。