我有一个文件放置在ftp位置,应该由ftp入站适配器拾取。此文件保存到本地目录。spring文件入站适配器依次轮询此本地目录。FileNameGeneratorbean用于文件入站适配器中,并动态决定目标。我还发布了另一个关于本地目录中的文件未被删除的问题。这就是我面临的问题。
这是我的整个配置
<util:properties id="someid" location="classpath:config/config.properties"/>
&l
我已经编写了一个代码,将多个文件合并到一个主文件中。
问题在于int-transformer,虽然我在文件入站通道适配器的复合过滤器中聚合了文件列表,但我一次只能得到一个文件。复合筛选器中的文件列表大小是正确的,但在Transformer bean中,文件列表大小始终是一个,并且无法通过筛选器获得正确的聚合文件列表大小
这是我的配置:
<!-- Auto Wiring -->
<context:component-scan base-package="com.nt.na21.n
我们在文件和数据库轮询中使用基于cron的触发器。有时我们想知道这是否是最后一次投票。这在spring integration中可用吗?我不知道您所说的“最后一次”-今天最后一次是什么意思
编写自定义版本的CronTrigger调用this.sequenceGenerator.next(…)并使用新结果再次查看下一次投票是否在明天进行并不困难
问题是如果发生这种情况,你想采取什么行动?仅仅知道它在触发器内部并没有多大帮助;我想你可以设置一个布尔值lastToday,然后在应用程序的其他地方测试它
在我的应用程序中,我的网关接收头中的请求标识符,每当发生错误时,错误通道就会接收异常。但看起来,errorChannel不从网关获取头
是否也可以将报头信息传送到错误通道
示例:
sampleErrorChannel中的sysout没有我传递的标头
错误通道上的消息是一条错误消息,它的有效负载为MessaginException,它有两个属性,即原因(异常)和失败消息
您可以通过这种方式访问失败的消息头
e、 使用SpEL时,g.payload.failedMessage.headers['fo
我实现了一个sftp入站适配器,它应该每天下午2点启动,如果结果为空(没有收到文件),我喜欢在2小时后重试一次
如何使用重试机制执行此操作?
我的源代码如下:
<int-sftp:inbound-channel-adapter id="sftpInbondAdapter"
auto-startup="true" channel="receiveChannel" session-factory="sftpSessionFactory"
local-directory="fil
我对spring integration更感兴趣,但我认为有一种奇怪的行为,我找不到答案
我有一个使用队列通道的简单应用程序:
<int:channel id="ticketChannel" datatype="ch.elca.prototype.model.Ticket">
<int:queue capacity="1"/>
</int:channel>
问题记者:
public class ProblemReporter {
privat
我正在尝试在Spring集成中实现TCP客户端。我有一个远程TCP服务器,它将数据泵入套接字。我的基于Spring的TCP客户机必须从该套接字接收数据
作为一个客户端,我不会将任何数据从我这边发送到服务器,只是连接并接收数据。看着这个,我明白这是不可能的。但是,收到的答案很旧,现在有可用的配置吗
如果您还有其他问题,请告诉我
@已更新配置
<bean id="javaSerializer" class="org.springframework.core.serializer.Default
我在我的项目中使用Spring集成。我正在尝试执行一个rest服务,该服务使用multipart/formdata输入参数。我使用inthttp:outboundgateway来执行rest服务。代码如下:
但是当我执行上面的代码时,我得到了以下错误
Caused by: org.springframework.web.client.RestClientException: Could not write request: no suitable HttpMessageConverter f
我正在使用Spring集成和Feed入站频道适配器来处理新闻RSS源(我认为这非常棒:)。我还想在同一频道中使用API提供的一些附加新闻提要。API只是一个HTTP端点,返回JSON格式的新闻文章列表。这些字段与RSS非常相似,即有一个标题、描述、发布日期,可以映射到SyndEntry对象
理想情况下,我希望使用feed inbound channel adapter中提供的相同功能,该功能处理重复条目等。是否可以自定义feed inbound channel adapter来处理和映射JSON
我有发送到IBM MQ队列的JMS消息,如果远程客户端(我无法控制远程客户端)在给定时间(比如1分钟)内没有使用该消息,则该消息应该过期(我让过期部分工作,在JMSTemplate上使用setExplicitQosEnabled和setTimeToLive“MQ删除消息”)并且应该通知消息发送者(我的SI代码),消息没有传递到远程客户端,以便将过期的消息重新路由到另一个队列
我不知道如何使用Spring集成来实现这个模式,尤其是当消息是异步发送的,并且只在返回时关联(MessageID->Cor
我正在做一个关于spring与(jms)activemq集成的示例项目。要求是将数据存储到数据库,并将数据传递到activemq中的队列,两者都应该并行工作。向生产者端发送消息时出错,如“嵌套异常为java.lang.IllegalStateException:类型为[class userDetails.web.QkaapzzMessageProducer]的目标对象没有处理消息的合格方法。”
<int:publish-subscribe-channel id="postChann
例如,我需要向所有spring集成组件添加自定义属性-需要向所有入站和出站网关添加“description”属性
一旦我们能够添加自定义属性,我需要记录新添加的属性-“description”
你能建议一下这方面的方法吗
谢谢我已经向您解释了它是如何不可能实现的,因为如果Java是自然的。现在让我们试着想象一下我们能在这件事上做些什么。您可以在应用程序上下文中注册一些额外的支持bean,并与集成组件建立关系。例如,通过一些id模式或键值存储,如simpleHashMap。因此,通过这种方式,无论
在transformer中遇到异常时,我们面临一个问题
以下是场景:
我们有一个路由器和一个变压器,配置如下
<bean id="commonMapper"
class="com.example.commonMapper"></bean>
<int:router input-channel="channelA" ref="commonMapper"
method="methodA" />
<int:transformer input-
我知道Spring集成相当古老,但我有一段代码需要稍加修改才能继续。我需要拆分传入的XML消息并保留父节点。以下是我的XML:
<Order>
<Item>A</Item>
<Item>B</Item>
</Order>
A.
B
我想分成2个XML并保留XSD验证
<Order>
<Item>A</Item>
</Order>
A.
及
B
他这样做
鉴于我有一个使用Spring集成的应用程序,我定义了网关:
@Component
@MessagingGateway
public interface SmsGateway {
@Gateway(requestChannel = CHANNEL_SEND_SMS)
void sendSms(SendSmsRequest request);
}
public interface IntegrationChannels {
String CHANNEL_SEND_SMS
我目前正在学习spring集成框架。所以,如果我的问题是荒谬的,请原谅并纠正我。
如何模拟http出站网关来运行我的单元实例
public IntegrationFlow sendSms() {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
我有一个使用Java DSL配置的集成流,它使用Ftp.inboundChannelAdapter从Ftp服务器提取文件,然后将其转换为JobRequest,然后我有一个.handle()方法触发批处理作业,所有操作都按照要求进行,但FTP文件夹中的每个文件的进程都在按顺序运行
我在Transformer端点中添加了currentThreadName,它为每个文件打印相同的线程名称
这是我到现在为止一直在尝试的
1.任务执行器bean
@Bean
public TaskExecutor
我使用SpringIntegration下载文件并处理它们
<int-sftp:inbound-channel-adapter channel="FileDownloadChannel"
session-factory="SftpSessionFactory"
remote-directory="/home/sshaji/from_disney/files"
我有一个jms:message-driven通道适配器,在其下游我有一个jms:outbound网关。
每当我在一个线程(如下所示)的通道适配器中获得消息时,就会出现问题
[org.springframework.jms.listener.DefaultMessageListenerContainer**#1-4**]和另一个therad中的网关响应,如下所示:
[org.springframework.jms.listener.DefaultMessageListenerContainer**
doc说:如果没有具有此名称的bean,那么新的directchannelbean将在上下文启动时创建
@MessagingGateway
public interface Responder {
@Gateway(requestChannel = "request.input")
String respond(String request);
}
@Bean
public IntegrationFlow doRespons
我创建了两个集成流,一个是文件入站流,用于查找我的本地目录,另一个是Sftp出站流,用于将这些文件从本地目录发送到远程目录。我从主类运行这些流,即不使用Junit。那个么我该如何将消息从文件入站流发送到Sftp出站流呢。在Junit测试方法中,我可以使用send()方法进行文件传输,但在本例中无法发送文件。既然我不能继续下去,有谁能帮我吗
这是我的文件入站流
@Bean
public IntegrationFlow fileReadingFlow() {
return
是否可以在jms出站适配器中动态设置连接工厂字段
我正在考虑在标题中传递连接对象,并将其与表达式一起使用,就像我们对目标表达式所做的那样
destination expression=“headers.DestinationQueueName”
我在Spring Integration的在线文档中找不到任何内容。没有;这是不可能的;有关如何向动态服务器发送消息的信息,请参阅。它适用于ftp,但同样的特性也适用。否;这是不可能的;有关如何向动态服务器发送消息的信息,请参阅。它适用于ftp,但同样的
我想知道如何使RedisQueueMessageDrivenEndpoint与IntegrationFlow一起工作,以便从以下代码中指定的列表中接收出队列的消息?“redisrppchannel()”似乎根本不接收任何消息。请帮忙
@Bean
public RedisOutboundGateway redisOutboundGateway(RedisConnectionFactory connectionFactory) {
RedisOutboundGateway gateway =
springbatch中的事务模型并不容易理解,因此我想知道springbatch在哪里真正需要代理来完成它的所有工作
那么Spring是否需要围绕读卡器、编写器、处理器和步骤创建代理,因此我必须将它们作为bean注入?或者不为它们使用注入可以吗?当您使用步骤范围时,Spring只在批处理中使用代理。否则,将创建并注入bean。关于不为他们使用注射,你可以采取这种方法,但在封面下有很多事情需要你自己处理,所以不推荐使用。有趣的是,StepScope正是我的问题,我不能用StepScope标记我的
我正在开发一个SpringIntegration应用程序,它有一个Kafka出站通道适配器,并使用SpringIntegrationJavaDSL配置流
spring集成核心:4.2.4.1版本
spring集成卡夫卡:1.3.0.0版本
spring集成java dsl:1.1.2.0版本
我已经配置了类似于以下代码段的消息处理程序规范
KafkaProducerMessageHandlerSpec messageHandlerSpec = Kafka
我是Spring集成的新手,我正在寻找一些关于如何使用它的建议,如下所示:
比方说,我收到一个客户的请求,该客户正在寻找某个小部件的价格比较。收到此请求后,我想向多个不同的公司api发出呼吁,以获得不同的价格,并在返回客户之前汇总每个响应(不同的响应格式)
我只是想知道我可以使用哪些模式来实现这一点看起来您的需求已经完全包含在该模式中了
Spring集成为您提供了一个特殊的解决方案:
它是一个复合端点,目标是向收件人发送消息并聚合结果。引用EIP手册,它是最佳报价等场景的一个组成部分,当我们需要
我有一个spring集成流,其中处理器(调度)顺序地从队列(jms)读取消息并尝试处理。如果处理器发现在另一个事件完成之前无法处理该消息,它会将该消息发送回原始队列并稍后尝试处理
如果它只是继续发送无法处理的消息,返回到队列,它将创建一个无限循环
所以我需要保留它们,直到我读完队列中已经存在的所有消息。并在将所有现有消息发送到队列之前,在读取所有现有消息时触发释放。我该怎么办
请注意,我不想聚合这些消息,只是暂时保存它们,不知何故。还要注意,我的处理器计划读取消息(不是消息驱动的) 在这种情况下
我们有一个服务器集群,这些服务器正在监控用于处理EDI文件的共享网络装载。我们最近添加了使用RedisMetadataStore的代码,如下所示:
@Bean
public ConcurrentMetadataStore metadataStore() {
return new RedisMetadataStore(redisConnectionFactory);
}
@Bean
public FileSystemPersistentAcceptOnceFileListFilter
我正在使用Spring集成和字符串云流。我有一个头,我希望我的HTTP网关使用,它有很长的价值,但它不能从长转换为字符串默认情况下,所以显示错误考虑注册一个转换器与转换服务。
因此,我尝试添加我自己的LongToStringConverter类和以下Bean,以便可以使用LongToStringConverter:
@Bean
public ConversionService conversionService()
{
DefaultConversionService service = n
因为我没有足够的声誉来评论关于这个问题的另一个公开话题
()
为了问我的问题,我不得不创造一个新的话题。
我有一个JMS,它轮询队列中的XML消息,我想将这些消息转换为Java对象。
这是我写的代码
@Bean
public IntegrationFlow jmsMessageDrivenRedeliveryFlow() {
return IntegrationFlows
.from(Jms.messageDrivenChannelAdapter(new Acti
我想在远程机器上为新添加的CSV文件或未读文件添加手表。一旦文件被识别,根据文件名中的时间戳读取它。文件将使用流媒体而不是本地计算机读取。读取文件时,将_reading附加到文件名,并在读取文件后附加_read。该文件将通过SFTP协议读取,我计划使用spring集成SFTP。如果读取文件时出错或文件中的数据不符合预期,我希望将该文件移动到子目录中
<dependency>
<groupId>org.springframework.integra
当使用SpringIntegrationDSLBuilder模式时,它通常会“自动”地填充元素之间所需的通道。然而,有时情况并非如此
在高层,包装应用程序将元数据保存在数据库中,以便根据需要动态创建和销毁跨平台的流,这是我们以前(可能)从未见过的。因此,流不适合使用静态符号(如@Bean)进行实例化,但必须在运行时动态创建和销毁,并在spring上下文中注册/注销
我在动态创建的主流中使用了一个已发布的消息通道,在动态创建的子流中使用了一个通道,但我看不到如何从子流订阅mainPublishCh
我有一个转换器,它接受org.w3c.dom.Document并返回一个域对象。这很好。如果缺少元素,我将引发应用程序异常
但是,我希望将该异常放到错误通道上,而是通过一系列处理程序返回当前的工作方式。如果有一种方法可以在转换失败的情况下指定错误通道,那就太好了
我可以:
通过路由器传递消息,以检查变压器之前(或之后)缺少的元件
发送消息
然而,这意味着要对文档进行两次解析,还要进行一点重写。我找到的答案是将转换器的返回类型从域POJO更改为消息。然后,在异常情况下,返回一条消息。然后,通过
我需要将post请求参数传递给int http:outbound网关,但找不到任何简单的方法。我要做的是向Coach db发出http请求,通过一个请求获取多个文档,如Coach db文档中所述:
curl -d '{"keys":["bar","baz"]}' -X POST http://127.0.0.1:5984/foo/_all_docs?include_docs=true
那么,如何将名为“keys”的参数传递给int-http:outbound网关?(我在消息的有效负载中拥有所需
我们的应用程序中存在以下问题。消息通过入站通道适配器传入,并使用持久消息存储在聚合器中累积。一旦释放策略中定义的条件返回true,消息将被发送到处理的下一阶段。如果在下一个处理阶段抛出异常,事务将回滚,消息将再次放入持久消息存储中。但是,事务不会将消息放回原始队列,因为消息一旦放在聚合器中就会被确认。这不是我们想要的。理想情况下,如果在处理聚合器已批处理的其中一条下游消息时发生异常,则事务只会回滚发生错误的单个消息,并将其放回原始队列。有没有使用Spring集成来实现这一点
谢谢不是内置的;您必
我是一个服务的客户,该服务通过套接字将XML文档以firehose方式流式传输给我。一旦建立了连接,我就不会收到任何消息,我的代码也会拼命跟上传入的数据
为此,我在客户端模式下使用tcp入站网关:
我的连接工厂包括一个自定义反序列化器,它检测流式XML上的开始和结束标记,以将流切分为文档。每个文档都被发送到下游的socketInChannel,供其他组件处理
所有这些都是有效的……但我发现我并没有足够快地从套接字中提取数据。我最终意识到,我像时钟一样每10秒处理一条信息。因此,我立即将回
我一直在尝试在Spring集成中实现一个验证拦截器,但运气不好。我的配置的第一部分如下所示:
<bean
class="org.springframework.ws.server.endpoint.mapping.UriEndpointMapping">
<property name="mappings">
<props>
<prop key="http://loc
我目前正在使用SpringIntegrationWebServiceClient,它可以很好地用于带有http调用的web服务端点。
现在,我正试图通过签署客户端密钥来调用https端点,以发送带有来自cacerts(defaut)的服务器证书的消息。我们在cacerts中添加了服务器证书,并将身份验证密钥保存在单独的密钥存储文件中,以便为传出消息签名/添加密钥。它与来自cacerts的证书的绑定符合预期。对于使用服务器证书对传出消息签名/添加密钥,我在Spring Integration xm
我需要跟踪文件,因此我使用跟踪入站通道适配器
有两个挑战。
每次批处理运行时,文件名和文件路径都会更改。我正在寻找一些regex支持,比如在入站通道适配器中找到的这个属性(filename regex)。我只在入站通道适配器中看到一个名为file的属性,它需要一个静态文件名(如下所示)。如何将动态文件名传递给入站通道适配器
<int-file:tail-inbound-channel-adapter channel="fileChannel" file="xyz" delay="99999
我试着在一个地方执行这个例子
我尝试使用发行版中给出的示例(sFtpInboundReceiveSample.java)将文件从远程目录传输到本地目录
因此,我安装了一个真正的sFtp服务器(完整的FTP),创建了一个帐户,为用户生成了一个私钥/公钥,然后尝试启动tge示例测试类
我的目标是从远程sFtp服务器检索pdf二进制文件并将其存储在本地目录中
不幸的是,在尝试接收第一个.pdf文件时,示例程序仍然处于停滞状态
即:创建了一个临时test1.pdf.writing文件,但该文件从未被完全
我需要用SI编写一个一次性流程。我可以像任何人一样开发它
其他SI流。我相信在这种情况下我不需要极坐标。我的
入站适配器启动SI流,我可以使其自动启动或启动
从启动类手动启动。当流程完成时,流程将停止
关闭并将返回代码发送回调用者(调度
工具)。对于这种情况,SI中是否内置了任何东西?如果不是,那么在spring集成中构建此流程的关键概念是什么
谢谢让我们知道是否符合您的要求。您也可以使用带有FireOnCategger的轮询器,如前所述(请点击链接)。
我需要在入站sftp适配器中接受某些文件格式,如果已处理具有唯一名称的已接受文件格式,则审核数据库中的重复文件,拒绝该重复文件并将其移动到某个存档位置。我不知道该如何实施。我确实尝试过使用这个类AbstractFileListFilter来扩展我自己的自定义过滤器,但是看起来它并没有达到只接受一次过滤器的目的
任何建议。我确实在spring集成文档中注意到了一些关于SFtpersistentAcceptonFileListFilter的内容,但不确定如何对其进行自定义。因为您要“审核”重复的文件
我混合使用SpringMVCWebSocket支持和SpringIntegrationJavaDSL
我有一个集成流,负责使用AbstractBrokerMessageHandler向websocket stomp订户发送消息
目标是/topic/notifications/{tenantId},其中tenantId是我要发送给订阅者的有效负载的成员
在spring集成中,xml dsl uri变量子元素
我想知道是否有类似的JavaDSL特性我错过了
目前我做的事情如下:
.enrichHea
我想扩展spring集成消息。
我想在消息通过通道时添加一些头值
我阅读了MessageHeader的文档,如下所示。我怎样才能得到第三箱的样品
创建消息头的一种方法是使用MessageBuilder:
MessageBuilder.withPayload(“foo”).setHeader(“key1”,
“值1”)。设置标题(“键2”、“值2”)
第二种选择是创建
org.springframework.messaging.support.GenericMessage传递有效负载
作为对象和标
问题:如果发生系统故障,如何将消息存储中的消息回滚到队列
场景:
IBM MQ队列-->JMS消息驱动器通道适配器-->聚合器
在导致JVM关闭的系统故障期间。我是否可以指定一个MQ队列作为持久消息存储,而不是使用默认的易失性消息存储?这样,如果发生系统故障,消息存储中的消息可以回滚到MQ持久队列以进行故障转移处理
编辑:澄清的最后一句话 不清楚你所说的
可以回滚到原始队列
…如果你是说自动,那么,不
有一个JDBC消息存储实现(但需要XA事务)
您可能会创建一个由JMS支持的自定义消息存储,但
我已尝试搜索spring integration cluster for tcp入站适配器,但找不到解决方案。是否有人可以帮助您群集spring integration tcp入站适配器并在此处寻找负载平衡。您的要求还不清楚,但如果客户端也是spring integration,请订阅多个出站适配器(每个适配器指向不同的服务器)到同一个通道将导致消息循环分发到服务器您的要求并不清楚,但如果客户端也是Spring集成,则订阅多个出站适配器(每个适配器指向不同的服务器)到同一通道将导致消息循环分发到
我需要通过Spring集成的HTTP出站网关调用RESTAPI。如何用有效负载中的值替换path变量。有效负载只有一个字符串值。下面的代码片段正在发送占位符。感谢您的帮助
@Bean
public MessageHandler httpGateway(@Value("http://localhost:8080/api/test-resource/v1/{parameter1}/codes") URI uri) {
HttpRequestExecutingMessageHandler
我有一个方法,当接收到数据时,它作为某个通信库的回调调用
使用SpringIntegration,我希望将数据发送到一个特定的通道,稍后由某个发送方和某个数据库记录器接收。这两者可能并行工作。我怎么做呢
我不喜欢在任何事情上使用XML
这两者可能并行工作
为此,Spring集成提供了一种新的解决方案。通过它的executor选项,您真的可以让订阅服务器并行工作
我想将数据发送到特定通道
所以,只需从回调方法中执行此操作
可以考虑使用依赖注入而不是直接通道注入来发送。
这样,您将从该回调调用网关的
我使用的是:Spring Boot 1.4.7、Spring Integration 4.3.10、RabbitMQ 3.6.5
我有一个Spring引导应用程序,它有几个Spring集成流,可以向rabbitMQ代理发送和接收消息
我遇到一个问题,当调用“关机”执行器时,应用程序并不总是干净地关机
在执行线程转储后,我可以看到单个“SimpleMessageListenerContainer”线程在对代理执行“发送”操作时被阻塞:
"org.springframework.amqp.rabbi
我在互联网上搜索了不少信息,但无法获得以下信息:
插入带有JpaUpdatingOutboundEndpointSpec的行的具体示例
@Bean
public JpaUpdatingOutboundEndpointSpec insertToTable() {
return Jpa.updatingGateway(entityManger)
.entityClass(EntitySample.class);
}
以上就够了吗
请帮帮我 没错,在某些情况下,
1 2 3 4 5 6 ...
下一页 最后一页 共 53 页