1
Apache Camelコンポーネントhttp4を使用して、REST Webサービスからデータを要求します。Apache CamelによるJSONのアンマーシャリング
このRESTサービスの応答タイプはJSONです。
{"coord":{"lon":145.77,"lat":-16.92},"weather":
[{"id":802,"main":"Clouds","description":"scattered
clouds","icon":"03n"}],"base":"stations",
....
私はJSONは私が注釈付きクラスを参照しているJsonDataFormatを定義したキャメルのルートの中でJSON構造
@JsonPropertyOrder({
"coord",
"weather",
"base",
...
})
public class Report {
@JsonProperty("coord")
private Coord coord;
@JsonProperty("weather")
private List<Weather> weather = new ArrayList<Weather>();
@JsonProperty("base")
private String base;
...
を反映したJavaクラスを注釈を付けています。
...
public void configure() throws Exception {
JsonDataFormat jsonDataFormat = new JsonDataFormat();
jsonDataFormat.setUnmarshalType(Report.class);
from(timer....).to("http4://${url}").unmarshal(jsonDataFormat).bean(myService);
これは、例外が生じる:
com.thoughtworks.xstream.mapper.CannotResolveClassException: com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:81)でCOORDを 〜[XStreamの-1.4.9.jar:1.4.9]
- 私はunmarshalType としてクラスCOORDを使用しようとしました
- 私はまた、JSON-注釈
はい、JSONLibrary.Jacksonを使用して解決策でした、ありがとう – ABX