【问题标题】:How to define an Apache Camel Route "from SOAP Web Service"?如何定义“来自 SOAP Web 服务”的 Apache Camel Route?
【发布时间】:2015-03-18 03:24:08
【问题描述】:

我正在开发一个需要从第三方 SOAP Web 服务读取数据的小型 camel 应用程序。

我想要一条类似这样的骆驼路线:

public class MyCamelRouter extends RouteBuilder {

@Override
public void configure() throws Exception {
    from("???:mySoapOrRestWebService")
        .to("jms:queue:someQueue"));
}

起初我认为这可以通过camel-cxf 完成,但它的文档没有提及。

到目前为止,我发现的唯一解决方案是实现 polling consumer 并将其与我的路由定义的“来自”的计时器一起使用。

这个解决方案是正确的吗?或者这可以通过其他骆驼组件来实现吗?

我还需要定义一个类似的路由,但在“from”中使用 REST Web 服务

【问题讨论】:

  • 澄清一下。已经有一项服务,您需要从该服务中获取数据。我说的对吗?
  • 是的 Naveen Raj,你是对的。我需要从现有服务中接收信息。
  • 这条路由将如何被调用/启动?换句话说,什么客户将使用这条路线?当您在路由的 from 部分添加 Web 服务组件(CXF)时,您正在创建一个 Web 服务生产者而不是消费者,因此如果您从以下路线开始 from(cxf) 您正在创建一个具有骆驼路线的新 Web 服务作为后端。你不能去from(some existing service)。如果您能告诉我如何调用该服务,我可以为您提供有关如何实现此目的的更多信息。
  • 感谢 lmenaolivares。 Namphibian 已经显示了正确的方向,但我想提供我自己的版本,因为它将帮助您作为骆驼的第一次用户。如果您需要从现有服务中获取一些信息,那么您可能正在为该服务编写客户端。在这种情况下,您需要编写一个生产者,例如一个 端点。因此,请让我们知道在什么基础上(例如计划运行或一天一次)调用现有服务。因此,我们可以帮助您
  • 感谢你们俩。我需要的是每 20 或 30 秒调用一次现有的 Web 服务。现在我知道我不能在“from”上调用它,但我能做的是 from(someTimer).to(existingWsUsingCxf).to(myProcessor)。我说的对吗?

标签: rest soap cxf apache-camel axis2


【解决方案1】:

我为此找到的唯一解决方案是在 from 中使用计时器,然后调用 SOAP Web 服务。

我使用的代码是这样的:

public class MyCamelRouter extends RouteBuilder {

@Override
public void configure() throws Exception {
    from("timer:soapRequestTimer?{options}")
        .to("cxf:serviceUrl"));
        .to("jms:queue:someQueue"));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多