Spring integration Spring集成存储过程出站网关

Spring integration Spring集成存储过程出站网关,spring-integration,Spring Integration,我对spring集成有以下要求 接收web服务请求 创建自定义负载。(这将是service activator的输出) 在sql server中调用2个存储过程。第一个返回一个out参数。我必须使用这个out参数,以及自定义负载中的项目列表来将数据插入数据库 继续使用在步骤2中使用另一个服务激活器生成的有效负载生成响应消息 请告诉我是否可以使用jdbc存储过程出站网关实现步骤3。示例代码将非常有帮助。提前感谢…您所说的是“和Spring集成”,这是最重要的 因此,您应该调用充实子流来执行存储过程

我对spring集成有以下要求

  • 接收web服务请求
  • 创建自定义负载。(这将是service activator的输出)
  • 在sql server中调用2个存储过程。第一个返回一个out参数。我必须使用这个out参数,以及自定义负载中的项目列表来将数据插入数据库
  • 继续使用在步骤2中使用另一个服务激活器生成的有效负载生成响应消息
  • 请告诉我是否可以使用jdbc存储过程出站网关实现步骤3。示例代码将非常有帮助。提前感谢…

    您所说的是“和Spring集成”,这是最重要的

    因此,您应该调用
    充实
    子流来执行存储过程,并将
    输出
    返回到主流,以充实消息,而不破坏当前的
    有效负载

    我们也有一个关于Enricher的问题。

    您所说的“和Spring集成”在这一问题上是最重要的

    因此,您应该调用
    充实
    子流来执行存储过程,并将
    输出
    返回到主流,以充实消息,而不破坏当前的
    有效负载


    我们也有一个关于Enricher的节目。

    嗨。谢谢你的回复。但我不懂“充实子流程”。这是否意味着要将service activator的输出传递给enricher,enricher在内部调用存储过程网关?不,您的带有自定义
    负载的
    service activator
    只将其结果发送给
    enricher
    。它将消息传播到某个
    通道,在那里您有您的第一个过程。调用它时,只需回复
    回复频道
    (不指定
    输出(回复)-频道时的选项)。结果将到达
    enricher
    ,可填充到您的自定义有效负载或标题中。等等。还有一个问题,如果链中的最后一个存储过程没有返回任何值(我使用的是int-jdbc:stored-proc-outbound-channeladapter),那么响应通道中就没有收到任何消息。但我需要将自定义负载发送到另一个service activator进行进一步处理。如何实现这一点?我的代码如下所示。第二个enricher调用一个不返回任何内容的过程。在这种情况下,我在ResultpChannel中没有得到任何输出。您可以将该
    频道设置为
    PublishSubscribebeChannel
    ,并向该频道添加一个
    ,以返回一些逻辑信息,这些信息可以确定该过程是否成功。这一个应该正好是第二个(例如,
    order=“2”
    ),以确保在procedure.Hi之后调用它。谢谢你的回复。但我不懂“充实子流程”。这是否意味着要将service activator的输出传递给enricher,enricher在内部调用存储过程网关?不,您的带有自定义
    负载的
    service activator
    只将其结果发送给
    enricher
    。它将消息传播到某个
    通道,在那里您有您的第一个过程。调用它时,只需回复
    回复频道
    (不指定
    输出(回复)-频道时的选项)。结果将到达
    enricher
    ,可填充到您的自定义有效负载或标题中。等等。还有一个问题,如果链中的最后一个存储过程没有返回任何值(我使用的是int-jdbc:stored-proc-outbound-channeladapter),那么响应通道中就没有收到任何消息。但我需要将自定义负载发送到另一个service activator进行进一步处理。如何实现这一点?我的代码如下所示。第二个enricher调用一个不返回任何内容的过程。在这种情况下,我在ResultpChannel中没有得到任何输出。您可以将该
    频道设置为
    PublishSubscribebeChannel
    ,并向该频道添加一个
    ,以返回一些逻辑信息,这些信息可以确定该过程是否成功。这一个应该正好是第二个(例如,
    order=“2”
    ),以确保它将在过程之后被调用。