マイクロサービスコンシューマーがプロバイダーを呼び出してエンティティークラスデータを取得すると、エラーが報告されます。
java.lang.IllegalArgumentException:タイプ「java.util.Date」の値を文字列「2020-03-17 20:33:37」からデシリアライズできません:有効な表現ではありません(エラー:日付値 '2020-03-の解析に失敗しました17 20:33:37 ':日付 "2020-03-17 20:33:37"を解析できません:形式' yyyy-MM-dd'T'HH:mm:ss.SSSZ 'に適合しているようですが、解析は失敗します(寛容?null)) [出典:UNKNOWN; 行:-1、列:-1](参照チェーンを通じて:...)
一般的な意味は、時刻形式が要件を満たしていないことです。ドキュメントの時刻を確認しました。デフォルトの変換形式は
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" "yyyy-MM-dd'T'HH:mm:ss.SSS'Z '" "EEE、dd MMM yyyy HH:mm:ss zzz" 「yyyy-MM-dd」
要件を満たしていません。通常、変換が必要なエンティティクラスに注釈を付けます
@JsonFormat(パターン= "yyyy-MM-dd HH:mm:ss"、タイムゾーン= "GMT + 8")
または、マイクロサービス構成センターはプロジェクトを均一に構成できます
#spring.jackson.time-zone = GMT + 8 #spring.jackson.date-format = yyyy-MM-dd HH:mm:ss
解決できます!!
しかし、最近、国内のデータベースhighgoアダプテーションを使用する場合、特別な要件のため、フィールドはCJSJ(作成時間)などのピンインで定義されます。このとき、時間フィールドに注釈が付けられるか、エラーが報告されます。時間形式が間違っています!
最後に、テストにより、フィールドを小文字に変更するとcjsjを解決できることがわかりました(これと同様です)。