Можно ли один раз создать экземпляр Jaxb и использовать его на всех маршрутах Apache Camel?
У меня есть маршрут, который заканчивается маршалом в XML, с использованием Jaxb. Весь маршрут занимает всего лишь миллисекунды до момента создания экземпляра контекста Jaxb:
JAXBContext jaxbContext = JAXBContext.newInstance(VVTMPUSH.class);
Этот небольшой метод занимает около двух секунд. И он вызывается каждый раз, когда используется маршрут, что должно быть около 100 раз в секунду. Можно ли создать экземпляр Jaxbcontext
только один раз, и использовать один и тот же объект на каждом маршруте?
Спасибо!
1 ответ
Решение
Я разделил оригинал process
во-вторых, удалил инициализацию Jaxb из метода, добавил его к маршруту верблюда и создал новый process_2
что продолжалось то, что раньше было в process_1
JaxbDataFormat jaxb = new JaxbDataFormat("add.your.namespace.to.the.ObjectFactory");
jaxb.setPrettyPrint(true);
from("seda:out?concurrentConsumers=20")
.process(new process_1())
.marshal(jaxb)
.process(new process_2());