我们有一个Camel路由的XML配置,其中包括这个bean,用于为大消息配置到磁盘的假脱机:
<streamCaching id="diskSpoolConfig" bufferSize="16384" spoolEnabled="true" spoolThreshold="10000000"/>
我想配置Camel,以便streamCaching自动使用磁盘假脱机,而不必在XML配置中指定它。
Main main = new Main();
main.setApplicationContextUri("file:routes.xml");
main.run();
我找到了关于application.properties
和set的文档
camel.main.streamCachingSpoolEnabled=true
但我不清楚这个文件需要驻留在JAR中的什么位置才能被读取。
Main main = new Main();
main.addMainListener(new MainListenerSupport() {
public void beforeConfigure(BaseMainSupport main) {
CamelContext context = main.getCamelContext();
context.setStreamCaching(true);
context.getStreamCachingStrategy().setSpoolEnabled(true);
context.getStreamCachingStrategy().setSpoolThreshold(10 * 1024 * 1024);
}
});
main.setApplicationContextUri("file:routes.xml");
main.run();
那也是无效的。也许它应用得太晚了?因为例如当我在beforeConfigure()
中设置context.getShutdownStrategy().setTimeout(5);
时,它会有效果。
如何启动启用了磁盘假脱机的Camel示例?
1条答案
按热度按时间7vhp5slm1#
可以从多个配置文件中创建一个上下文,这样可以在jar内部进行预置,但从外部加载路径: