【问题标题】:Is it possible to instantiate Jaxb once, and use it in all Apache Camel routes?是否可以一次实例化 Jaxb,并在所有 Apache Camel 路由中使用它?
【发布时间】:2015-03-23 15:29:20
【问题描述】:

我有一条使用 Jaxb 以编组到 xml 的路由结束。整个路由只需要几毫秒,直到必须实例化 Jaxb 上下文:

JAXBContext jaxbContext = JAXBContext.newInstance(VVTMPUSH.class);

这个小方法大约需要两秒钟。而且每次使用路由都会调用,应该是每秒100次左右。 是否可以只实例化一次Jaxbcontext,并在每条路由中使用相同的对象?

谢谢!

【问题讨论】:

  • 我自己创建的。它是异步过程的一部分。但是谢谢,不知道。我试试看!
  • 删除了我的评论并将其添加为包含更多详细信息的答案。

标签: java jaxb apache-camel


【解决方案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());

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 2021-07-13
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    相关资源
    最近更新 更多