ServiceMix和Camel:如何创建路由?

时间:2014-06-23 08:34:22

标签: java xml apache-camel apache-servicemix blueprint-osgi

这部分难题是我的噩梦,我在2个不同的tomcat实例上部署了ServiceMix和2个Java应用程序:

第一个应用:

http://localhost:8080/textmsgClient

第二个应用:

http://localhost:8181/textmsgServer

现在我的两个应用程序需要进行通信,但我希望通过ServiceMix进行通信,因此我可以执行一些日志和所有内容。

我在./deploy目录中创建了一个蓝图XML文件,但是我应该在其中添加哪些路由?

我不能这样做:

  <route>
    <from uri="http://localhost:8080/textmsgClient"/>
    <log message="Test log"/>
    <to uri="http://localhost:8181/textmsgServer"/>
  </route>

那么正确的做法是什么?

顺便说一下,我的XML文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<blueprint
    xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
      http://www.osgi.org/xmlns/blueprint/v1.0.0
      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
      <route>
        <from uri="file:camel/input"/>
        <log message="Moving ${file:name} to the output directory"/>
        <to uri="file:camel/output"/>
      </route>
    </camelContext>

</blueprint>

1 个答案:

答案 0 :(得分:2)

查看Camel Components列表。不知道您在服务之间发送什么类型的数据,很难推荐使用哪种数据。但是,这是一个几乎可以想象的每种数据类型的组件,甚至支持自己创建!

修改的 一个例子可能是:

<route>
    <from uri="direct:textmsgClient"/>
    <log message="Test log"/>
    <to uri="direct:textmsgServer"/>
</route>