java - Karaf Camel :route-list shows only Blueprint routes, 不是 Java 路线

标签 java apache-camel apache-karaf karaf blueprint-osgi

我正忙着对付 Camel 和 Karaf 。我已经构建了一个包含两个 bundle 的项目:

  • bundle A 包含 Blueprint Camel 路线
  • Bundle B 包含纯 Java 路由

我按照杰米·古德伊尔的《 Karaf 食谱》中的说明进行操作

这两条路线都非常简单,我使用功能文件来部署它们。它们部署完美,并且完全按照计划运行:

bundle A 将文件从 /tmp/in 移动到 /tmp/out bundle B 将文件从 /tmp/in2 移动到 tmp/out2

一切都好。

但是,如果我运行 Karaf 命令 camel:route-list 则仅显示蓝图路线

此外,如果我运行 camel:context-list,则仅显示 Bundle A 中定义的上下文。

重申一下,两条路线都可以正常工作,只是 Java 路线没有显示在列表中。

我在这里遗漏了什么吗?

这是我的 Java 路线:

public class FileRouter extends RouteBuilder {
    public void configure()
    {
      from ("file:/tmp/in2?noop=true")
       .log("Java DSL doing the heavy lifting")
       .to("file:/tmp/out2");
    }
}

和捆绑激活器:

public class Activator implements BundleActivator {
    DefaultCamelContext camelContext;

    public void start(BundleContext context) {
        System.out.println("Starting the bundle");
        camelContext = new DefaultCamelContext();
        try {
            camelContext.setName("JavaDSLContext");
            camelContext.addRoutes(new FileRouter());
            camelContext.start();
        } catch (Exception ex) {
            System.out.println("Exception occured! " + ex.getMessage());
        }
    }

    public void stop(BundleContext context) {
        System.out.println("Stopping the bundle");
        if (camelContext != null) {
           try { 
              camelContext.stop();
           } catch (Exception ex) {
              System.out.println("Exception occured during stop context.");
           }
        }
    }   
}

最佳答案

Tx Souciance Eqdam Rashti。今天早上我浏览了您的博客,了解您使用 JavaDSL 蓝图的含义。

就像魅力一样。

为了完整起见,更改如下:

我的 Java Route 类与问题中指定的完全相同,但我完全删除了 Activator,用蓝图文件替换它。

蓝图如下所示:

<bean id="FileRouter" class="com.eightbitplatoon.learning.karaf.karafbasics.combined.FileRouter">
</bean>
<camelContext id="karafbasics-combined" xmlns="http://camel.apache.org/schema/blueprint">
    <routeBuilder ref="FileRouter" />
</camelContext>

感谢您的帮助!

关于java - Karaf Camel :route-list shows only Blueprint routes, 不是 Java 路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40123419/

相关文章:

java - ActiveMQ:队列(具有并发消费者)和主题的正确配置

java - hawtio-web 卡住 "deploying",无法在 karaf 中启动

java - 如果每次迭代后返回到原始状态,我可以安全地改变正在迭代的数组吗?

java - 有没有什么方法可以从 Apache Camel 路由生成 bpmn 模式或带有模式的图片?

java - 如何在java中创建通用的json响应对象?

java - 将 Netty 与 ClamAV Instream 结合使用

apache-camel - 如何为 Pax Web DefaultResourceMapping 指定 Jetty 连接器

apache-karaf - "Unable to resolve root:"用于 karaf 中的已卸载功能

java - Google App Engine Blobstore 图像

java - 如何指定 AutoWired Bean 的子依赖项