【问题标题】:Cross communication between war and osgi bundle in camel + fuse骆驼+保险丝中war和osgi包之间的交叉通信
【发布时间】:2017-08-29 02:29:50
【问题描述】:

如何使用 direct-vm 与 war 进行通信以捆绑?我创建了一个 war 文件,在其中定义了具有唯一 camelContext 的骆驼路线。从这场战争中,我尝试连接其他捆绑包 B,它是具有独特骆驼上下文的纯 OSGI 捆绑包。

当我尝试从战争中执行 direct-vm:route-abc 时,它给我的错误是有使用 direct-vm:route-abc 的消费者。

令人惊讶的是,当我在 karaf 控制台上执行 camel:context-list 时,我无法看到战争的 camelContext。它仅列出 osgi 包上下文。

有人可以帮忙吗?

提前致谢。

阿什

【问题讨论】:

    标签: java apache-camel osgi war jbossfuse


    【解决方案1】:

    如果你使用一个普通的 war 文件,camel 不会假设它在 OSGi 中运行。所以骆驼上下文没有被宣布为服务。

    您可以改为使用带有蓝图和 camel servlet 组件的普通包来在 Web 上公开骆驼路由。

    【讨论】:

    • 其实我的要求就是这样。我无法将战争更新到 OSGi。这是否意味着如果我们使用 osgi:install war:mvn:~~ 部署战争,它不会将我的 camelContext 注册为服务?如果是这种情况,那么战争和其他 OSGi 捆绑包之间的这种相互通信是如何发生的。
    • 战争并不是真正的 OSGi 工件。所以它是在容器中独立部署的。我不认为您可以利用 OSGi 机制与普通战争进行交流。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多