我尝试在运行时加载一个ApacheCamel路由并添加到现有CamelContext中。我已经定义了如下路由,
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<routeContext id="message" xmlns="http://camel.apache.org/schema/spring">
<route id="abcRoute" autoStartup="false">
<from uri="activemq:input"/>
<delay>
<constant>1000</constant>
</delay>
<to uri="activemq:output"/>
</route>
</routeContext>
</beans>
我明白了,在运行时使用camel2中的loadRoutesDefinition加载camel路由是可行的,如下所示:
InputStream inputStream = getClass().getResourceAsStream("MyRoute.xml");
RoutesDefinition routesDefinition = camelContext.loadRoutesDefinition(is);
camelContext.addRouteDefinitions(routesDefinition.getRoutes());
我正在寻找在运行时在camel3中加载camel路径的可能方法。
1条答案
按热度按时间vohkndzv1#
您可以使用 ExtendedCamelContext 从文件中加载路线定义,调整您的Camel上下文:
其中,bytes 是存储文件内容的字节数组。