我需要用键“foo_bar”记录消息头的值,以便当该头的值为“baz”时,日志消息看起来像这样:
标题foo_bar的值:baz
如何使用有线抽头和记录通道适配器执行此操作?使用记录通道适配器的表达式属性,并设置有线抽头和记录通道适配器,如下所示:
<integration:channel id="channel1">
<integration:interceptors>
<integration:wire-tap channel="logg
我有一个测试类,我希望能够使用@Value获取头文件或负载
我做了很多失败的交换,现在我想知道这是否可能
有没有一种方法可以编写一个SpEL来获取配置文件之外的头的值?正如Mark在Spring论坛上回答的相同问题一样-@值在加载上下文时计算一次,而消息负载和头是运行时实体
如果你解释一下你想做什么,我相信我们可以提供一个解决方案
除了Spring论坛上的讨论之外,它还展示了如何在测试中添加通道拦截器
如何使用JavaDSL使用头值路由器?。我想根据标题中的值进行路由
如果我将false传递给我的网关,它将给我
“未定义名为'false'的bean”
我需要设置router.setResolutionRequired(false)如果您想在频道解析失败时发送到默认频道。这是正确答案。你甚至可以在这里接受你自己的!
@MessagingGateway
public interface RouterGateway {
@Gateway(requestChannel = "testCh
在消息驱动通道适配器的错误通道属性中
我希望原始入站消息作为有效负载,而不是故障点的有效负载。为了实现这一点,我使用claim签入/签出和SimpleMessageStore。我从声明签入中获得的UUID存储在原始入站消息的头中。此消息现在由转换器使用,然后由webservice调用使用
当抛出服务超时或转换异常时,消息驱动通道适配器的错误通道没有收到任何消息,而且它似乎在自己的无限循环中重试,而不是向错误通道抛出异常。这是预期的行为吗?如果我遗漏了什么,请告诉我。请分享有关该问题的配置。和St
我使用SpringIntegration(4.0.6)从rest服务使用INTHTTP:OutboundGateway和INTWS:OutboundGateway进行SOAP调用。是否有方法仅在异常情况下记录SOAP请求消息
<int:gateway id="myGateway" service-interface="myservice">
<int:method name="getData" request-channel="reqChannel" reply-cha
我有一个Spring集成上下文,其中有多个入站通道适配器,每个适配器都有自己的轮询器(目前所有轮询器的刷新时间都配置为固定延迟,但将来可能使用固定速率)。所有入站适配器将其生成的消息输出到同一处理链。问题是在这种情况下,轮询和消息消费的行为是什么?想象一下,poller#1已经产生了1000条消息,它们被交给了我的处理链。由于处理过程可能需要相当长的时间,因此可能是轮询器2完成其工作并可能生成消息的时候了。但请记住,我的处理链仍在处理轮询器1传递的消息。会发生什么
在处理所有轮询器1消息之前,轮
我正在使用
MessageProducerSupport messageProducer =
Jms.messageDriverChannelAdapter(jmsConnectionFactory, TransactedMessageListenerContainer.class)
.destination(queue)
.get();
使用ActiveMQ队列中的
我正在尝试并行处理SQL查询的输出。下面是我的代码。我在聚合器中有sysout。但我随机看到聚合器中的sysout没有打印出来。此外,aggregator中的发布方法也不打印系统输出。我想,我把信息丢到哪里了。有人能透露一些信息吗
<int:bridge input-channel="inputChannel" output-channel="dbRequestChannel" />
<jdbc:outbound-gateway request-cha
我有一个案例,我读取一个文件,将内容转换为字符串。然后将字符串拆分为多个有效负载,并将这些有效负载分别发送到队列。我想使用JmsTransactionManager,以便发送所有消息或根本不发送任何消息
发送成功后,我希望将文件移动到存档文件夹,否则将其移动到失败文件夹。我已经读到,我可以使用transactionSynchronizationFactory来完成这项工作。但与JmsTransactionManager结合使用时,文件不会移动。如果我使用伪TransactionManager,那
我正在尝试使用SpringIntegrationJDBC出站网关从数据库中获取记录。我在数据库中有很多记录,但下面的代码只返回有效负载中的一条记录
<int-jdbc:outbound-gateway
query="select * from payee"
request-channel="input"
reply-channel="output"
data-source="dataSource"/>
您必须使用max rows per poll=“0”:
使用选择查询时,可以设
我试图在使用spring集成调用soap服务时实现断路器。断路器按预期工作。问题是,当电路开路时,我需要实现回退机制。请建议可能的实施方法
spring-integration.xml
<int:chain input-channel="BLR" output-channel="location.reply.out" >
<ws:header-enricher>
<ws:soap-action value="${bangalo
我正在将我们的一项服务从spring boot 1.5升级到2,现在我看到一个与kafka producer相关的异常,该异常与将messageHistory写入标头有关。以下是收到的例外情况:
org.springframework.kafka.listener.ListenerExecutionFailedException: Listener failed; nested exception is java.lang.IllegalArgumentException: Incorrect
我需要在SFTPOutboundGateway中使用更多的命令(cd、mkdir、rmdir),但是根据,只有少数命令可用,我需要包含的其他命令都没有。这背后有什么原因吗?是否有(其他)方法使用更多命令,如cd、mkdir和rmdir cd在网关中没有任何意义,因为它实际上什么都不做
对于网关不支持的命令,请使用service activator中代码中的SftpRemoteFileGateway
对于模板不支持的命令,请使用
/**
* Execute the callback's doIn
我使用以下示例作为我自己的代码发布到MQTT服务器的基础:
我有一个特殊的用例,其中密码是一个令牌,特别是一个将过期的keydepose令牌。如果出于任何原因,spring应用程序与MQTT服务器失去连接并尝试重新连接,则令牌将已过期,并将引发MqttSecurityException:Not authorized to connect异常。我尝试在MqttPahoMessageHandler中扩展方法connectionLost,但由于MqttPahoClientFactory和IMqttAs
我有一个带有两个出站通道适配器的通道,它们都返回一个包含其活动结果的消息对象。
这在升级到SI 2.1之前一直有效。现在,我收到一条错误消息,因为一个方法返回一个非空值
下面是一个代码示例:
<integration:gateway id="notificationGateway"
default-request-channel="notificationRecordsFetcher"
default-r
一个程序从数据库获取数据,并使用Spring集成发送到JMS队列,并调用POST rest服务
现在的问题是,如果我们使用HTTP:INBOUND适配器调用rest服务,我们可能需要通过servlet容器使用。但我不喜欢war文件应用程序。我需要另一种可行的方法,我们从Spring Integration调用REST服务,因为我的程序是一个独立的程序。现在不行;我们正在寻找独立ReST解决方案的各种选项。您的应用程序调用ReST服务?应该是出站网关吗?你是对的。但是如果我们把这个队列数据通过出站
我需要在Spring集成上下文中将消息动态分配给MessageChannel。
当我知道所需MessageChannel的名称时,我可以通过从上下文获取MessageChannel bean来实现这一点
我需要做的是通过编程查找在ChannelAdapter/服务中设置的消息通道的名称/id
但是,MessageChannel API没有与其关联的getName()或getId()方法
有没有办法找到这条信息
提前感谢。让我们从另一个角度来看这项任务
为什么要处理这样低API的通道
为什么不在这
我使用ws:outbound gateway调用soap web服务,该服务期望在cookie中设置会话id
我在上述ws-gateway的请求回调中获取此会话id
我试图像下面那样丰富头部,但这是添加soap头部,而不是http头部
<int:chain id="login.session.extractor.chain"
input-channel="login.ws.out" output-channel="login.gateway.out">
我需要编写一个简单的HTTP客户端,使用Spring集成生成简单的GET请求和JSON响应。
调用失败,异常中没有消息:org.springframework.web.client.HttpServerErrorException:500内部服务器错误。
我试着调试Spring代码,并成功地完成了它,直到我有了源代码,即till
在方法AbstractMessageHandler.HandleMessageMessageMessage中
已调用抽象handleMessageInternalMes
我有一个服务激活器,它使用轮询器从通道中提取消息。通道有一个队列,该队列由数据库的持久存储支持。轮询器还配置了一个任务执行器,以便为来自通道的消息处理添加一些并发性
任务执行器配置了队列容量
由于轮询器从数据库的通道中检索消息,并且这被配置为事务性的,那么如果任务执行器没有更多可用线程,那么在任务执行器中排队的消息的事务会发生什么情况。任务执行器上对线程的请求是排队的,由于这些消息没有自己的线程,事务会发生什么情况?我假设轮询器从持久通道存储中删除任务执行器中排队的消息将被提交。那么,如果服务器
我想知道是否有办法配置kafka集成入站通道适配器,如使用Java注释而不是xml中所述。我不太明白这件事的线索。我能够配置消息驱动的通道适配器,但现在我需要一个在重新启动服务器时不会重新读取已使用消息的适配器请参阅配置注释的说明;另请参阅
我们正在添加越来越多的java配置示例;例如,见
kafka高级消息源将配置为@InboundChannelAdapter@Bean
我正在尝试改编以下示例:
使用以下库的最新稳定版本:
org.apache.kafka > kafka_2.10 > 0.8.2.2
org.springframework.integration > spring-integration-kafka > 1.2.1.RELEASE
org.springframework.integration > spring-integration-java-dsl > 1.1.0.RELEASE
集成dsl库似乎经历
有没有办法在通道拦截器回调方法中获取整个SOAP消息?默认情况下是否有任何MessageContext注入到任何回调方法中?这个问题听起来不太好。ChannelInterceptor不使用SOAP执行任何操作。他们只知道要传递的频道和消息
通常,Spring集成是无状态的,因此没有任何上下文注入到通道拦截器中
任何MessageContext都由您自己的应用程序负责
其中一种方法是MessageHeaders,正如我在其他问题中建议您的那样:在将消息发送到频道之前,您将某些内容存储到其标题中,然
我已经在SpringConfig类的顶部添加了@ImportResource(“classpath:outbound kafka integration.xml”),在这里我用Java代码创建bean,因为我们没有applicationcontext.xml
当我启动tomcat时,它给出了以下错误
Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 35 in XM
在spring int 4.1中,我让标题映射器工作得很好,如下所示:
当我尝试升级到SpringInt4.2时,不允许使用头映射器。我之所以需要它,是因为我需要映射soap安全头。但我认为,如果不指定soapHeaderMapper,就不会映射它。请注意,我确实有以下上游来拦截soap请求,我非常确定拦截器没有删除soap头。如果您需要完整的配置,请告诉我
无操作
这仍然有效
为什么您认为标题映射器被忽略
我们有以下测试配置:
<ws:inbound-gateway id="h
我使用的是Spring批处理集成,我必须动态地传递作业参数。下面是我的service activator类,它将我的消息转换为JobLaunchRequest
注意:没有指定通道名称,因为它位于链内部
<int:service-activator id="msgToJob">
<bean class="org.xyz.transformer.MessageToJob">
<property name="job" ref="myJob"/>
我想使用重试条件进行http出站网关调用。出站网关将重试,直到rest API返回错误或完成
我所做的是:
<int-http:outbound-gateway request-channel="checkJobChannel"
url="http://host/rest/job-status"
http-method="GET"
我的流设置如下所示:
<int:channel id="channel1">
<int:queue/>
</int:channel>
<int:channel id="channel2">
<int:queue/>
</int:channel>
<int:chain id="chain1" input-channel="channel1" output-channel="channel2">
因此,我创建了两个短流,使用SQS作为处理段之间的后备存储。基本流程是:
RestController -> SQS Queue1 OCA
SQS Queue1 MDCA -> Service-Adapter -> SQS Queue2 OCA
SQS Queue2 MDCA -> Service Adapter
然而,我遇到了几个问题。。。
“SQS Queue1 MDCA”从队列中读取带有AWS特定消息头的消息,这些消息头最终到达出站适配器并写入Queue2
在Spring集成中有没有重用@Transformer或任何其他组件的方法
我有下面这样的变压器,我想在同一个流程中使用多次。我觉得我们不能这样做,因为这是与渠道捆绑。这是正确的吗
@Transformer(inputChannel = "fileInputChannel" , outputChannel = "mappingChannel")
public List<Map<String, String>> readFile(SLFile slfile){
l
参考手册谈到了如何用XML设置,我看到了@Aggregator的高级配置已完成,但没有看到这些高级属性。那么,如果使用注释,如何设置过期组?那么,根据JIRA票证,在
这还不够吗
@ServiceActivator(inputChannel = "aggregatorChannel")
@Bean
public MessageHandler aggregator(MessageGroupStore jdbcMessageGroupStore) {
AggregatingMessageH
我有一个集成,它有两个不同的集成流。因此,我将这些流分为两个不同的类。假设第一个集成流必须每两小时工作一次,另一个每一小时工作一次
// Class1
@Bean
public PollerMetadata poller1() {
return Pollers.fixedRate(2, TimeUnit.HOURS, 1).get();
}
// Class2
@Bean
public PollerMetadata pol
我们有200多个电子邮件地址,用于与我们的客户进行集成,大多数电子邮件处理逻辑都是相同的,我们希望将这些电子邮件迁移到Spring integration inbound email adapter,但我们不希望重复复制和粘贴以下代码片段
<int-mail:imap-idle-channel-adapter id="mailAdapter"
store-uri="${uri}"
我正在尝试使用运行Spring5.2发行版项目(它不是SpringBoot项目)的xml配置在遗留web应用程序上设置kafka使用者。
查找之后,我发现了一个使用xml配置设置kafka消费者的项目,如图所示
然而,这并没有给出如何在SpringWeb应用程序中将其与java连接的细节。所有的例子都是针对SpringBoot项目的。我确实找到了需要添加到xml中的内容
我也找到了SpringWeb应用程序和kafka的一个例子,但它是针对4.X版本的,并且是从2015年开始的
如果您对任
我正在寻找如何最好地使用Spring集成来执行多个和并发的SFTP上传和下载到不同的SFTP服务器的方向,这些服务器是在运行这些SFTP传输的Spring引导应用程序已经启动之后配置的
我需要动态添加SFTP服务器和特定的文件传输。我可以使用预定义属性为RemoteFileTemplate设置单个上载和下载,而不会出现任何问题,但我找不到有关如何动态执行此操作以及如何同时为多个RemoteFileTemplates执行此操作的示例或方向
任何提示都将不胜感激。请参阅示例。它提供了如何在运行时添加
在Spring集成中,任务执行器可以在不同的通道之间共享吗?它是否会影响性能,因为多个频道现在将竞争相同的资源,还是仅仅是共享的定义?不,它不仅仅是一个定义,而是一个特定的TE实例。如果将其注入多个位置,则其线程将在这些元素之间共享
您可以调整executor的属性(池大小等)以适应需要,但是,如果您有一个关键组件,您可以随时为其提供专用的TE。非常感谢Gary。当通道连接到服务激活器/chain/jms:outbound通道适配器等时,是否也应该为这些元素配置任务执行器?或者,这些元素的实例是
我使用的是jms队列消息的侦听器,每次我运行我的应用程序时,我都会看到下面提到的日志,上面说它希望得到回复,但没有收到任何回复
2014-07-10 11:22:28,280 DEBUG [org.springframework.jms.listener.DefaultMessageListenerContainer#0-3] jms.ChannelPublishingJmsMessageListener - expected a reply but none was received
有没有
这是一个Spring集成应用程序。我有一个需求,需要持久化到DB,然后发布到队列/主题。这应该是单个事务的一部分。我计划使用JTATransactionManager。应用服务器是Tomcat。请有人提供此实现所需的一些示例配置代码。您需要一个第三方独立XA事务管理器,如Atomikos。Tomcat没有
您也可以考虑。< /P>我有一个JMS和DB RESP的Spring Orr.Spring FraskWork.JMS.CalnFut.JMrStAsAsAsNoMungRead和COM.Mc
我是ApacheKafka的初学者,正在尝试学习confluent-kafka-rest-utils,但是我对如何使用它感到困惑
在搜索过程中,我找到了这个文档
这是一个非常好的文档,但它不能帮助我学习rest UTIL
合流kafka rest utils的git代码为
演示如何使用rest-kafka。但我想知道确切的程序,以便更清楚地了解它。有一些简单的解释。有人能给我推荐一些关于如何使用rest客户端的链接吗。请引导我朝这个方向走
这可能是一个愚蠢的问题,但我没有其他选择去学习
提前谢谢
我需要解决这个问题。我有两个amqp消费者集来获取一条消息
@Bean
public IntegrationFlow jmsPrimaryFlow() {
return IntegrationFlows.from(
Amqp.inboundGateway(
taskManager().getPrimaryMessageListenerContainer()).errorChannel(errorChannel())
)
我想从ftp读取文件,并将其存储在本地,路径与根目录下的远程文件相同(我需要它来处理文件)。
远程文件路径是动态的,并且会根据筛选器而更改。
(当service activator调用方法pull时,将处理该文件)
我一直在尝试使用本地文件名生成器表达式,但我不确定如何编写SpEL表达式。
我对这个有点陌生,请帮助我,我不清楚你的意思
远程文件路径是动态的,并且会根据筛选器而更改
远程路径是一个文本;过滤器无法更改它
remote-directory="/"
如果您只是想将远程文件名用作本
我们在10服务器JBoss EAP 5.2集群中使用Spring批处理和作业分区。由于JBoss消息传递中的一个问题,我们需要为分区步骤中的回复消息使用一个主题。在我们看到JBoss消息传递出现故障(在启动作业的服务器上)并将其从集群中删除之前,一切都很正常。它会恢复,但主分区不会拾取从分区步骤发送的消息。我在JMX控制台中看到主题中的消息,但也看到订阅和消息是不持久的。因此,我希望将分区步骤应答的通信转换为持久订阅。我似乎无法用一个文档的方式来实现这一点。这是我对分区步骤和关联bean的当前配
在SpringIntegration4.2中引入了
但是,中的描述并没有真正描述编解码器如何不同于或在哪些场景中使用哪种抽象
基本上我想知道的是:
当MessageConverter的功能类似时,为什么要引入Codec抽象
为什么要在消息转换器上使用编解码器,反之亦然
什么时候你会选择使用其中一个而不是另一个
这个问题是在有默认配置但最近有工作的情况下强调的。这是一个灰色区域
messageconverter在Spring集成中用于两个领域:
将消息的某些外部表示转换为spring消息消息—
因此,我认为我需要扩展SpringXD中提供的当前redis接收器,以写入redis封顶列表,而不是创建一个新的列表,但不幸的是,它似乎变得更糟,因为我将不得不深入spring集成,并进一步回到spring数据(SpringDataRedis)因为整个redis接收器似乎基于redis上的通用发布/订阅抽象——或者消息到达通道处理程序后是否有某种类型的处理程序可以定义
为了在推送数据redis时获得“封顶列表的效果”,我需要执行redis“推送”,然后执行“rtrim”,如下所述-。如果我要构建
我对spring集成tcp工厂有一些性能问题。
我的应用程序大约有70个客户端试图通过tcp连接发送数据。我使用了下面的配置,用于使用spring集成的tcp服务器,但在服务器中,我每5秒接收一次数据。但是,当我在不使用spring集成的情况下手动实现tcp套接字时,我每秒接收大约5个连接。你知道我的问题吗?我真的很想使用spring集成,但我不知道如何提高性能
<int:poller id="defaultPoller" default="true" tast-executor="def
我有一个消息驱动的通道适配器,配置为从队列中拾取消息,并将确认设置为Transact。是否可以将不同的消息发送到下游持有相同事务的不同队列,并且在流中的不同队列之间也有数据库插入?。如果消息传递到任何队列失败,则事务必须回滚(包括数据库条目)并将消息发送到其他队列
示例:队列(接收)--->插入数据库-->发送到(队列1、队列2..etc向每个队列发送不同的消息)
如果队列1、队列2等的任何发送调用失败,则事务应回滚
我可以使用单个队列进行配置(即仅使用队列1)。但是,如果涉及多个队列并保持事务
我想增强我当前的文件入站通道适配器,它将扫描目录以刷新队列中每个轮询的文件列表
下面是我当前文件入站通道适配器的XML配置:
<int-file:inbound-channel-adapter id="hostFilesOut" channel="hostFileOutChannel"
directory="${hostfile.dir.out}" prevent-duplicates="false"
filename-regex="${hostfile.out.filen
我有一个目录,该目录由一个入站文件适配器读取,该适配器通过管道传输到一个优先级通道,该通道按文件名对文件进行排序。我已经创建了一个事务同步工厂,用于在处理完成后移动文件,这对于入站适配器和其他文件编写器流中发生的所有转换/聚合都很好。只要我添加PriorityChannel,事务似乎就完成了,并且没有传递到转换/聚合逻辑
这里是入站流程
return IntegrationFlows
.from(fileReadingMessageSource,
我正在尝试设置一个只接受json的http:inbound网关。我的xml配置看起来像
<int-http:inbound-gateway id="inboundGateway"
supported-methods="POST"
request-payload-type="eu.model.MyRequest"
request-channel="inputChannel&q
我有许多sq队列,我必须将workers附加到这些队列中以使用和处理消息(使用spring集成流)。我最初的想法是使用单个spring引导应用程序,每个SQS队列有一个通道(spring集成aws)
这将类似于1sqs->1channel->1flow
但是,这可能会涉及到可维护性,部署,内存问题,我们无法独立扩展每个工作人员。这听起来像是工人的一块巨石。另一个选项是为每个worker类型创建spring云函数,并将其部署为lambda
在spring堆栈(我想使用spring集成和reacto
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 47 页