Spring Integration を使用して、JSON ペイロードでメッセージを消費しています。
私の春の文脈では、私は持っています
<integration:channel id="jsonToMyMessageConverterChannel"/>
<integration:json-to-object-transformer
type="com.acme.messaging.message.MyMessage"
input-channel="jsonToMyMessageConverterChannel"
output-channel="myMessageUpdateChannel"/>
私のメッセージ関連のオブジェクトは次のとおりです。
MyMessage.java
@JsonIgnoreProperties(ignoreUnknown=true)
public class MyMessage {
@JsonProperty
private String timestamp;
@JsonProperty("msgs")
private List<Message> messages;
// Getters and Setters...
}
メッセージ.java
@JsonIgnoreProperties(ignoreUnknown=true)
public class Message {
@JsonProperty
private Integer msgId;
@JsonProperty("msgText")
private String text;
// Getters and Setters...
}
json トランスフォーマーがメッセージをオブジェクトに変換しようとすると、失敗します。
Caused by: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "msgs" (Class com.acme.messaging.message.MyMessage), not marked as ignorable
JSON ペイロードには、クラスmsgs
を表すオブジェクトを含む配列が確実に含まれています。Message.java
JSON に問題のあるフィールドがあり、クラス自体にも不明なフィールドを無視するように注釈が付けられている場合、例外が発生する理由を誰かが提案できますか?
更新
デバッグ後@JsonProperty("msgs")
、何らかの理由で注釈が使用されていないようです。