骆驼上下文能否在EAP上自动启动

Can camel context be started automatically on EAP

我在 eap6.4 上使用 jboss fuse63,在将 camel 应用程序部署为 war 后,使用 spring DSL 运行 定义 camel 上下文,我必须在 web.xml 中使用监听器 class,并使用监听器 class 启动 camel 上下文,如下所示:

    ApplicationContext contextCommon = new FileSystemXmlApplicationContext("camel-context-common.xml");
    DefaultCamelContext camelContextCommon = (DefaultCamelContext)contextCommon.getBean("_camelContext_common");
    try {       
        camelContextCommon.start();
        ...

我的spring DSL的摘要如下(定义了autoStartup="true"):

<beans ...">
    <bean class="test.CommonProcessor" id="commProcessor"/>
    <camelContext autoStartup="true" id="_camelContext_common"
        shutdownRunningTask="CompleteAllTasks" xmlns="http://camel.apache.org/schema/spring">

有没有办法在 eap 上自动创建 camel 上下文 运行 而无需使用 java 代码启动它?

此致

是的,有一个很好的方法可以做到这一点。使用 Wildfly-Camel 子系统和非常方便的快速入门作为示例。 如果您使用的是产品化版本,则可以为此使用 Fuse/EAP。 祝你好运, 瑞克

是的,有简单的方法。您必须正确命名包含 Camel 路由的 Spring XML 文件。文件 naming convention 需要包含 -camel-context.xml 后缀。

对于您的情况,将 camel-context-common.xml 文件重命名为 common-camel-context.xml。如果这样做,Camel 子系统将自动启动 camel 上下文。