Мы конвертируем устаревшие маршруты Camel из XML в Java DSL, испытывая проблемы с форматом данных JSON / Jackson, который мы используем для маршаллинга.Вот как мы это делаем в XML:
<camelContext id="camelContext">
<dataFormats>
<json id="json"
library="Jackson"
allowJmsType="true"
disableFeatures="WRITE_DATES_AS_TIMESTAMPS"/>
</dataFormats>
</camel>
<route id="myRoute">
<from uri="seda:inqueue"/>
<marshal>
<json library="Jackson" />
</marshal>
<to uri="seda:outqueue />
</route>
... и это версия Java (пока) ...
@Bean(name = "json")
public JacksonDataFormat jacksonDataFormat() {
JacksonDataFormat format = new JacksonDataFormat();
format.setAllowJmsType(true);
format.disableFeature(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
return format;
}
from("seda:inqueue")
.marshal(json)
.to("seda:outqueue");
Я на правильном пути?
Кроме того, в чем разница между этими двумя методами?Я предполагаю, что первый преобразует Json TEXT в поток байтов, второй преобразует объект в Json TEXT;это точно?
from("seda:inqueue")
.marshal(json)
.to("seda:outqueue");
from("seda:inqueue")
.json(JsonLibrary.Jackson)
.to("seda:outqueue");