【问题标题】:scenario of apache camel , cxf web service and osgi bundle in servicemix(v4.5.3)servicemix(v4.5.3)中apache camel、cxf web service和osgi bundle的场景
【发布时间】:2014-01-22 17:13:40
【问题描述】:

在 apache servicemix 中混合了 apache camel、cxf web 服务和 osgi bundle,我陷入了以下场景。

场景:

我在 tomcat 中部署了一个 Spring Web 应用程序 (wa1)。在同一台机器上,我正在运行 servicemix。在servicemix中,我已经在servicemix中使用apache cxf部署了rest web service(ws1),还部署了一个bundle(b1)。

现在,我想要的是从 Spring Web 应用程序(在 URL 中附加参数)中访问 Web 服务(ws1),在 Web 服务(ws1)获取请求后,从 URL 获取参数并将其发送到另一个包(即 b1 )。

到目前为止,我所做的是:实现 Web 服务、捆绑和部署两者。我每件事都得到带有 URL 的参数。

现在,我的问题是如何将参数从 Web 服务发送到捆绑包。为此,我认为 apache camel 是最佳人选。所以,我需要一些指导,我应该使用 apache camel 的哪个组件。

eg:    from("ws1 with parameter").to("send this parameters to bundle(b1)").

如何实现这个,我应该使用什么组件,端点?请帮我。 而且,这是我遵循的正确方法吗???

【问题讨论】:

  • 等待专家评论
  • 请指导我..并随时询问任何问题

标签: apache-camel cxf apache-karaf osgi-bundle apache-servicemix


【解决方案1】:

正如您已经注意到的,您应该选择合适的组件来完成工作:)。在您的场景中(相同的虚拟机 - Servicemix 和 OSGi 捆绑包),我建议您使用 Direct VM。 Camel 的文档解释得很清楚:

这个组件还允许连接部署在不同的路由 OSGI Bundles,你可以在这里看到。即使他们正在奔跑 不同的捆绑包,骆驼路线将使用相同的线程

您也可以在文档中找到示例。

Direct VM 组件相当原始(也非常快),因此您将来可能需要更高级的包之间的通信方式。例如,很多人使用 JMS。无论如何,Direct VM 在许多情况下都能成功:)。

罗伯特

【讨论】:

  • 感谢您的支持。让我检查一下。
  • 不错的建议,我之前没有使用过direct-vm。否则,您可以使用某种 JMS / MQ,甚至可能使用 Zookeeper 或 hazelcast 等配置组件。
  • 请注意,direct-vm 也相当快,因为​​它基于 Java 实现的简单聚合。
  • @RobertBudźko 谢谢哥们。 Direct VM 帮助了我,但这是同步的。有没有类似于 Direct VM 的骆驼组件,但也是分布式的(可选)。
  • 嗯,如果只是释放线程,那么您可以将直接调用包装在线程组件中。此外,如果我没记错的话,SEDA 是异步的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 2013-10-28
  • 2014-12-01
  • 2015-10-19
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
相关资源
最近更新 更多