在Spring Integration中,我有如下消息:
{
"name":"House",
"attributeIds": [1,3,5]
}
我需要使用一些Rest服务来丰富/转换这个消息,这将为我提供属性值。
例如http://restservice.com/attributes?id=1,3,5
会回答我
{"attributes": [
{"id": 1, "value":"Waterproof"},
{"id": 3, "value":"SoundProof"},
{"id": 5, "value":"Concrete"}
]}
最后一个对象应如下所示:
{
"name":"House",
"attributes": [
{"id": 1, "value":"Waterproof"},
{"id": 3, "value":"SoundProof"},
{"id": 5, "value":"Concrete"}
]
}
如何实现这一点?
应该是这样吗?https://www.youtube.com/watch?time_continue=273
入站适配器-
这确实是Content Enrich的典型任务。
因此,您需要将传入的JSON反序列化为一个普通的映射
。使用<code>请求有效载荷表达式=“payload.attributeIds”作为子流请求的有效载荷。
< code>request-channel上的订阅者可以只是简单的Spring Integration HTTP出站网关来调用REST服务并获得< code>attributes消息。该网关可以不带< code >输出通道通过< code>replyChannel头将其结果返回到< code >内容丰富器中。
当回复消息到达< code >内容丰富器时,一个简单的< code >
之后,您可以从该映射中删除属性 Ids
键,并在需要时将其序列化回 JSON
。
更新
下面是一个使用Java DSL和Spring Boot的例子:https://github . com/artembilan/sandbox/tree/master/spring-integration-enricher
我有一个JMS侦听器,它正在从另一个应用程序接收字节消息。当前应用程序正在使用Spring JMS。我想在这里介绍spring集成。因此,我添加了以下示例代码来侦听消息。 然后我得到如下类强制转换异常: 我得到了一个ByteMessage,但我没有找到一个关于如何提取带有字节数组有效负载的ByteMessage的好例子。我是Spring集成世界的新手。
我正在构建一个将订单路由到订单管理系统的示例实现。路由的入站是具有两个标识符的交换,一个用于客户 ID,另一个用于目录项 ID。然后,我将入站交换的主体转换为我的订单域对象。然后,我的目标是调用内容丰富器模式,一次用于聚合来自客户的数据,一次用于聚合来自目录项的数据。 我的路线是: 我得到的例外是: 注意我使用的是最新的camel,2.17.1。我的问题是,如果我得到一个主体是JSON格式的交换,
如果其他人已经解决了这个问题,那就只是寻找一些信息。我想同时使用Spring集成和Spring批处理。这两个都是SpringBoot应用程序,理想情况下,我希望将它们和各自的配置分开,这样它们都是自己的可执行jar。我在自己的进程空间中执行它们时遇到问题,我相信我希望,除非有人能说服我,否则,每个程序都能像自己的Spring Boot应用程序一样运行,并用自己的配置文件和属性初始化自己。不过,我遇
要表现色彩里的浓烈、富足感可藉由组合一个有力的色彩和它暗下来的补色。例如,深白兰地酒红色就是在红色中加了黑色,就像产自法国葡萄园里陈年纯美的葡萄酒,象征财富。白兰地酒红色和深森林绿如果和金色一起使用可表现富裕。这些深色、华丽的色彩用在各式各样的织料上,如皮革和波纹皱丝等等,可创造出戏剧性、难以忘怀的效果。这些色彩会给人一种财富和地位的感觉。 补色色彩组合 原色色彩组合 单色色彩组合 49 3 49
我将下面的数据发布到kafka并通过Spring集成通道接收并转换为Log对象,我如何使用Spring集成转换器将下面的数据转换为Log对象?感谢这里的任何帮助 '日志(客户端键=字符串,有效负载=字符串)” 这是通道适配器代码 当我尝试使用下面的方法在服务激活器中进行转换时 它的失败 com.fasterxml.jackson.core.JsonParseException: 无法识别的令牌“日
当RabbitMq消息到达队列时,我目前正在使用IntegrationFlow来触发作业执行。IntegrationFlow的AmqpInFronChannelAdapter和作业的第一步的ItemReader都配置为从同一队列中读取消息。 我遇到的问题是IntegrationFlow的AmqpInboundChannelAdapter读取RabbitMQ消息,然后ItemReader再也找不到该