[解決済み] 応答タイプに適した HttpMessageConverter が見つかりませんでした。
2022-02-02 06:25:19
質問
Springを使用して、このコードで。
List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters();
for(HttpMessageConverter httpMessageConverter : messageConverters){
System.out.println(httpMessageConverter);
}
ResponseEntity<ProductList> productList = restTemplate.getForEntity(productDataUrl,ProductList.class);
私は
org.springframework.http.converter.ByteArrayHttpMessageConverter@34649ee4
org.springframework.http.converter.StringHttpMessageConverter@39fba59b
org.springframework.http.converter.ResourceHttpMessageConverter@383580da
org.springframework.http.converter.xml.SourceHttpMessageConverter@409e850a
org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter@673074aa
org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter@1e3b79d3
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@52bb1b26
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.mycopmany.ProductList] and content type [text/html;charset=UTF-8]
pojoのスニペット。
@XmlRootElement(name="TheProductList")
public class ProductList {
@XmlElement(required = true, name = "date")
private LocalDate importDate;
解決方法は?
Springの観点から見ると、どの
HttpMessageConverter
で登録されたインスタンスは
RestTemplate
を変換することができます。
text/html
コンテンツに
ProductList
オブジェクトを作成します。注目のメソッドは
HttpMessageConverter#canRead(Class, MediaType)
. 上記すべての実装は
false
を含む。
Jaxb2RootElementHttpMessageConverter
.
がないため
HttpMessageConverter
は HTTP レスポンスを読み取ることができないため、例外が発生して処理に失敗します。
サーバーのレスポンスを制御できる場合は、それを修正して
Content-type
から
application/xml
,
text/xml
または、次のようなものがあります。
application/*+xml
.
サーバーの応答を制御しない場合は、自分で書いて登録する必要があります。
HttpMessageConverter
(Springのクラスを拡張することができます。
AbstractXmlHttpMessageConverter
とそのサブクラス)を読み込んで変換することができます。
text/html
.
関連
-
[解決済み] if / for / while 内で "Missing return statement" が発生する。
-
[解決済み】Javaの".class期待値"
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】Javaでユーザー入力を待機させる方法
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み】java.io.IOException: 壊れたパイプ
-
[解決済み】破損したjarファイル
-
[解決済み】予期しない型エラー
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】文字列中の � を置換する方法
-
[解決済み】java.io.IOException: 壊れたパイプ
-
[解決済み】破損したjarファイル
-
[解決済み】Javaメソッドスタブ
-
[解決済み】ソースルート外のJavaファイル intelliJ