Можно ли один раз создать экземпляр 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());
Другие вопросы по тегам