当前位置: 首页 > 知识库问答 >
问题:

Apache Camel使用HTTP from定义路线

墨星鹏
2023-03-14

如何使用HTTP为“from”endpoint定义骆驼路由?

我的目标是定义一个路由,当有HTTP请求时,消息将在ActiveMQ队列上排队。

我尝试了以下路由定义:

<route>
  <from uri="http://localhost:8181/cxf/crm/customerservice/customers" />
  <to uri="activemq:queue:LOG.ME" />
</route>

从浏览器中,我访问 URL:

http://localhost:8181/cxf/crm/customerservice/customers/123

我已经验证了HTTP请求已经到达web服务“customerservice ”,因为我收到了来自web服务的XML响应。但是,没有消息在ActiveMQ队列中排队。

下面是处理ActiveMQ队列中消息的路由定义。

<route>
  <from uri="activemq:queue:LOG.ME" />
  <multicast>
    <pipeline>
      <bean ref="processor1" method="handle" />
      <to uri="mock:result" />
    </pipeline>
    <pipeline>
      <bean ref="processor2" method="handle" />
      <to uri="mock:result" />
    </pipeline>
  </multicast>
</route>

我验证了没有任何东西排队到 ActiveMQ,因为我的 bean “processor1”和“processor2”的“句柄”方法没有执行。

如何使用HTTP为“from”endpoint定义骆驼路由?

谢谢。

共有2个答案

梁兴文
2023-03-14

要侦听传入的超文本传输协议请求,可以使用jetty或cxf组件设置代理,然后调用Web服务并将消息记录到Activemq。

举个例子,

from("jetty:http://localhost:8282/xxx").
     to("http://localhost:8181/cxf/crm/customerservice/customers").
          to("activemq:queue:LOG.ME");

现在,要访问web服务,代理可以作为调用http://localhost:8282/xxx,而不是直接调用web服务。也可以使用cxf组件设置代理,这是很好的记录。

郭思淼
2023-03-14

如果您想侦听HTTP请求,那么如果您在Web应用程序中运行,则需要使用servlet组件,或者使用嵌入简单超文本传输协议服务器的jetty组件。

两者都有很好的文档和示例。

http和http4组件仅适用于生产者(< code >

 类似资料:
  • 我正在尝试向异步路由发送消息,但它不起作用。我刚刚在github上创建了一个项目来模拟这个问题

  • 英文原文: http://emberjs.com/guides/routing/defining-your-routes/ 当启动你的应用时,路由器会负责展示模板,载入数据,以及设置应用状态等任务。 这些都是通过将当前的URL与你定义的路由进行匹配来实现的。 1 2 3 4 App.Router.map(function() { this.route("about", { path: "/a

  • 我想测试以下骆驼路线。我在网上找到的所有例子都有以文件开头的路由,在我的例子中,我有一个Springbean方法,每隔几分钟就会被调用一次,最后消息被转换并移动到jms以及审计目录。 我对这条路线的写测试毫无头绪。目前我在测试用例中所拥有的是

  • 注册路由规则 route目录下的任何路由定义文件都是有效的,默认的路由定义文件是route.php,但你完全可以更改文件名,或者添加多个路由定义文件(你可以进行模块定义区分,但最终都会一起加载)。 ├─route 路由定义目录 │ ├─route.php 路由定义 │ ├─api.php 路由定义 │ └─...

  • 我正在使用apache camel cxf开发一个Web服务(肥皂),我遇到了这个错误。 Java . lang . illegalargumentexception:Part { http://blue print . camel . ngt . TN/}返回的类型应为[ltn . ngt . camel . blue print . WB _ subscriptions;,而不是org . A

  • 例如:产品详细信息页面可能有一个标签式导航部分,默认显示产品概述。 当用户单击“技术规格”选项卡时,该部分将显示规格。 如果用户点击ID为3的产品,我们要显示产品详细信息页面,其中包含概述: 当用户点击 “Technical Specs”: localhost:3000/product-details/3/specs overview 和 specs 作为 product-details/:id的