我有以下流程:
1) message-driven-channel-adapter ->
1.1) output-channel connected to -> service-activator -> outbound-channel-adapter (for sending response)
1.2) error-channel connected to -> exception-type-router
我发现这个线程在使用c3p0数据源的spring集成应用程序中被永远卡住了。你能告诉我是什么原因造成的吗,谢谢
"lookupTaskExecutor-1" - Thread t@57 java.lang.Thread.State: WAITING
at java.lang.Object.wait(Native Method)
- waiting on <57d7e64f> (a com.mchange.v2.resourcepool.BasicResourcePool)
at
我正在调用一个返回json消息的web服务。
在我的spring集成应用程序中,我希望通过将消息转换为管道分隔的键值对并基于令牌构建下游流,从而对该消息进行通用处理(而不必编写域对象)。我将如何在spring集成中实现这一点
谢谢 您可以使用json-to-object-transformer从json创建LinkedHashMap,使用自定义转换器将映射转换为您的格式
我能够使用Bitvise SFTP访问客户端工具登录到SFTP位置,只需userid和pswd。
因此,我尝试使用int-sftp:outbound-gateway,并通过使用userid和pswd访问sftp位置,但不使用任何密钥文件,并获得以下错误。我的问题是:我们能否仅通过应用程序使用ID、Pswd访问SFTP位置
WARNING: failure occurred in gateway sendAndReceive
Throwable occurred: org.springframew
我正在为我的springxd模块编写自己的单元测试(但是,我不打算使用xd.test和xd.dirt)
这是一个处理器模块,我为测试所做的是:
配置上下文:
ctx = new ClassPathXmlApplicationContext("config/spring-module.xml");
获取输入直接通道和发送(消息)
但是对于DirectChannel,我必须为它提供一个subscriber,因此我决定向输出DirectChannel编写一个日志处理程序Bean,就是这样:
@Bea
我正在关注这个文档
并添加maven依赖性:
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-sftp</artifactId>
<version>5.0.0.M6</version>
</dependency>
<de
我使用的是spring boot 2.3.0版本和spring Integration 5.3.0,不知何故,我无法让下面的代码正常工作。应用程序启动时没有错误,但当控制下一个通道流()方法时,没有任何事情发生或打印。谁能告诉我我错过了什么。感谢您的帮助。谢谢
@Configuration
@EnableIntegration
@EnableRetry
Class MyIntegrationFlow
.
.
@Bean
public Integratio
我是spring集成的新手,我使用以下代码
公共班机{
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"trail03ApplicationContext.xml");
MessageChannel channel = app
我在以下场景中苦苦挣扎:
WS |==================JMS~~~异步未来处理~~
想法如下。传入的WS-request存储到JMS,一旦存储(正确发送),WS-client将以OK响应
我可以通过SpringJMSTemplate实现这一点,比如
<chain>
<service-activator>
... calling jmsTemplate send ...
</service-activator>
<
不确定这是否是有意的,但getCorrelationId在MessageHeaders类中不再可用。其他一些方法如getTimestamp仍然存在。事实上,常量CORRELATION\u ID也不再可用,因此除了message.getHeaders().get(“correlationId”)之外,没有其他好的方法来获取相关ID。看起来有点原始。也许需要更清楚一点,但是当核心消息传递类在4.0中移动到Spring框架时,引入了一个新的MessageHeaderAccessor类,以及针对特定于集
我使用下面的代码来获取稍后将从sftp服务器检索的文件列表。我添加此代码是为了尝试处理在负载中使用服务器上不存在的目录执行ls命令时在sftp出站网关中发生的异常
<int-sftp:outbound-gateway session-factory="sftpSessionFactory"
request-channel="inbound" command="ls" expression="payload"
reply-channel="checkForNo
下面是我对文件轮询功能的配置xml。有时我必须更改输出目录
<int-file:inbound-channel-adapter id="filesIn" directory="file:${paths.root}" channel="abc" >
<int:poller id="poller" fixed-delay="5000"/>
</int-file:inbound-channel-adapter>
<int:ch
从具有有效负载呼叫的信道到
一个int-http:outbound网关,调用url返回JSON响应
如何从调用方获取初始有效负载以获取初始有效负载,
我需要它在聚合器中使用
这就是现场
消息-->通道-->服务激活器-->输出通道
outputchannel-->int http:出站网关(调用rest服务1)-->响应*
outputchannel-->int http:出站网关(调用rest服务2)-->响应*
聚合器
您应该将其放在消息头中:
<header-enricher>
我正在尝试创建一个基于Spring集成的websockets服务器。我正在使用以下配置文件(目前):
你知道如何解决这个问题吗?看起来你的DispatcherServlet无法检测DispatcherServlet.properties的defaultStrategies
SockJsHttpRequestHandler的handleAdapter实际上是默认设置中的第一个:
org.springframework.web.servlet.HandlerAdapter=org.springfra
是否可以使用SpringIntegrationTCP适配器从远程主机和端口接收数据流?
如果是,如何在spring 4和spring java DSL上创建它的动态TCP适配器?该由tcprevivingChannelAdapter支持。因此,您应该为此配置@Bean,并为TcpNetClientConnectionFactory配置@Bean
如果您想从Spring Integration Java DSL中使用它,只需使用适当的工厂方法启动IntegrationFlow:
@Bean
pub
我创建了一个简单的示例来了解重试和建议。以下是示例配置:
@Configuration
@EnableIntegration
@IntegrationComponentScan
@ComponentScan
public class SimpleConfiguration2 {
@Bean
public DirectChannel requestChannel() {
return new DirectChannel();
}
@Bean
public DirectC
当查询在ResultSet内返回null或零结果时,我遇到了一个问题
我有一个带有行映射器的intjdbc:inbound通道适配器
<int-jdbc:inbound-channel-adapter query="SELECT * FROM ENGINE_LOGS WHERE COUNTRY_ID = 2 AND BUSINESS_ID = 100 and rownum < 10"
channel="oracle.db.resultSet.engineLogs
我是一名Java新手,正在与spring integration kafka合作,我已经学习了很多教程,比如
是否有使用spring integration kafka或任何其他spring integration示例的示例供JDK6初学者使用。既然您是该领域的新手,您应该浏览并进入该项目。既然您是该领域的新手,您应该浏览并进入该项目
我正在使用入站通道适配器对目录进行极化,并将极化间隔设置为10000。但是,轮询器会一次又一次地轮询同一个文件,直到文件处理完成并导致异常
我尝试使用各种文件列表过滤器。
AcceptOnlyOnceFilter-它将只轮询文件一次。但是,我确实想在一段时间后对文件进行轮询
AbstractFileListFilter(修改的时间戳)-只有在文件被修改时,它才会在下次轮询该文件。但是如果文件在一段时间后没有任何修改,我确实希望轮询该文件
感谢您的回复
谢谢,不要在流程中的任何地方使用任务执行器(
java对于理解代码的结构非常有帮助。代码位于
但是,对于错误处理,我会在进行过程中找到答案。是否有任何测试或参考代码显示了构造错误通道或使用子流委派错误处理的好方法
为问题添加更多上下文:
jmsMessageDrivenFlow:读取传入队列并打印负载。如果存在错误,则会将其发送到errorChannel()
handleErrors():应该侦听errorChannel并将任何内容发送到fatalErrorQueue
jmsMessageDrivenFlow()工作正常并打印消息。我希望只
我正在尝试学习Spring集成,为此,我想创建一个如下的应用程序:
从Oraclei发送消息(在Oracle队列上),将从Java应用程序(使用Spring集成构建)截获此消息,应用程序将根据收到的消息发送电子邮件。消息将包含收件人:-Cc:和要发送的文本
为了实现这种通信,我决定使用JMS(我认为在Oracle中,这是通过Oracle AQ实现的)
在数据库中,我已经创建了队列,现在我正在尝试创建一个简单的applicationContext.xml来启动此握手
在网上我发现很少有关于这方面的
在我的项目中,我必须将消息发送到队列目标。这是一个火和忘记类型。但是,一旦我将消息放入队列中,我就需要将消息已丢弃的消息通知回我的呼叫者
我尝试了句柄(Jms.outboundAdapter(connectionFactory).destination(queueName)。但是我无法在句柄后附加任何组件。我也不希望线程无限期地等待。因为,我尝试在单独的网关中调用上述句柄,但我的测试一直在无限期地等待
任何建议。?您可以将出站适配器前面的频道设置为PublishSubscribeBchannel
当我试图在linux服务器的Tomcat8中部署带有Spring集成的代码时,我得到了InstanceAlreadyExistsException,它有两个独立的流。我参考了几个论坛,仍然无法找到解决方案。但是我在windows平台上测试本地Tomcat8时没有遇到这个异常。欢迎您的任何意见
Stacktrace -
2016-08-30 14:27:40 ERROR SpringApplication:838 - Application startup failed
org.springfr
我们使用的是DB2数据库。我用以下方式配置了存储过程出站网关:
<int-jdbc:stored-proc-outbound-gateway
auto-startup="true"
data-source="routingDataSource"
stored-procedure-name="ZSPPQCIMGL"
skip-undeclared-results="true"
我有一个由Spring集成支持的应用程序。
简言之,该计划是:
|-> activator
gateWay -> splitter -> transformer -> router |-> ...
|-> activator
例如,服务获取一些json数组,将其拆分为json对象,
我希望通过拆分项目、将每个项目路由到相应的网关并聚合结果来并行处理项目列表。但是,我的应用程序未启动,出现以下错误:
BeanCreationException: The 'currentComponent' ... is a one-way 'MessageHandler'
and it isn't appropriate to configure 'outputChannel'.
This is the end of the integration flow.
这是一个示例流定义,说明
我有一个事务轮询器定期轮询来自jdbc支持的队列通道的消息
我有两个目标:
1)防止进程在消息处理过程中死亡的消息源丢失消息。
2) 通过将相关异常丢弃到错误通道(并转到下一条消息),防止一条格式错误的消息导致整个进程中断
我的问题:
如何设置(理想情况下通过dsl)事务轮询器,使其在不回滚事务的情况下将错误消息丢弃到错误通道?
(以防止同一消息反复重播的无限循环)
提前非常感谢您的反馈和专业知识
向您致意当前的体系结构(我怀疑我们是否会改变它)是基于这样一个事实,即在事务回滚之后,我们已经从轮
我的集成流程代码是:
@Bean
public IntegrationFlow messageFlow() {
return IntegrationFlows.from(stompInboundChannelAdapter())
.transform(inBoundStompMsgTransformer::transform)
.headerFilter("stomp_subscription","conte
我正在使用SI的聚合器,并使用自定义聚合器和发布策略。PFB片段
return IntegrationFlows.from("uaDefaultChannel").wireTap(UA_WIRE_TAP_CHNL).transform(eventHandler, "parseEvent")
.aggregate(a -> a.correlationStrategy(corStrgy, "getCorrelationKey").releaseS
使用Boot 2.2.2和Integration 5.2.2-当一条XML消息源于文件且未能解组(即,它不是XML)时,消息将按照预期的错误通道进行。但是,当消息来自JMS时,通过相同的通道路由并未能解组,它被路由到errorChannel,消息被回滚到JMS。之后,对于同一条消息,我陷入了无尽的SAXParseException循环
我从一开始就遵循了这个例子。是否存在一些我没有考虑的隐含交易控制?如何让Spring Integration将消息转发到errorChannel,并从传入队列提交
我计划使用IBM MQ队列支持的缓冲队列通道。我希望将Spring消息放入MQ队列,这样每个消息都可以在单独的事务中处理,如果下游webservice失败,可以重新尝试,并最终放入回退队列。这样信息就不会丢失
我看到有JDBC消息存储和其他的实现,但我找不到任何MQ队列的实现。如果我不见了,你能告诉我吗
<si:service-activator id="eventHandler"
input-channel="channel1l" output-channel="amou
我有以下配置来使用队列中的消息
receivingTaskExecutor配置为org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor,核心池大小为5,最大为50,队列容量为100
我注意到它正在非常缓慢地消耗消息。在java visual VM上,我只看到5个receivingTaskExecutor线程处于活动状态。我的配置中有什么错误阻止它动态扩展到最大强度?队列上有数千条消息要处理
谢谢下游是什么?如果Respo
我想将名为“UriVariablesPression”的属性设置为映射类型的值。它将作为集成流中的服务激活器运行。并且输入通道将有一条消息,说明有效负载的值为Map type。如何使用SpEL设置属性
我已经知道了。但这对我没有帮助
<bean id="gitlab-http-outbound-bean"
class="org.springframework.integration.http.outbound.HttpRequestExecutingMessageHandler
在任何地方都找不到使用spring integration DSL only xml的示例。任何值得赞赏的指针,也需要轮询器在创建和修改文件时触发
@Bean
public IntegrationFlow fileReadingFlow() {
return IntegrationFlows
.from(s -> s.file(tmpDir.getRoot()).patternFilter("*.sitest"),
e
我们正在使用下面的配置轮询db表来拾取行,一旦拾取了这些行,我们希望将其状态更新为其他状态,以便在下次轮询中不再拾取。以下是更新查询失败的配置,并显示错误消息
原因:java.sql.SQLException:列类型无效
<int-jdbc:inbound-channel-adapter
auto-startup="true" channel="pollingChannel"
query="$select id,status from test_table where st
在我的轮询器从数据库获取数据之后,我正在调用一个外部服务。
从该服务获得响应后,我想在单独的线程中调用另一个系统。这意味着,在收到响应后,我的轮询器应该再录制一条记录并发送。此外,调用其他系统应该并行工作
为此,我使用直接通道从DB接收数据。使用服务激活器向外部服务发送请求。响应被传递到executer通道。是否有人可以告诉我以下配置是否适用于该场景
为了清楚起见,我正在共享poller.xml
否;这不正确(几乎正确)
这将覆盖executor通道定义(不带通道属性的出站适配器将创建具
嗨,我正在尝试使用spring集成来接收MQTT消息,处理它们并发布到另一个主题
以下是integration.xml文件:
<int-mqtt:outbound-channel-adapter id="mqtt-publish"
client-id="spring-foo-1"
client-factory="clientFactory"
auto-startup="true"
url="tcp://localhost:1883"
defau
我有一个应用程序,它可以通过SftpInboundFileSynchronizer来SFTPs文件:
@Bean
public SftpInboundFileSynchronizer sftpInboundFileSynchronizer() {
SftpInboundFileSynchronizer fileSynchronizer = new SftpInboundFileSynchronizer(sftpSessionFactory());
fileSynchronizer
Spring XD中的源组件总是像Spring Integration设计的入站通道适配器一样
关于接收器组件的相同问题:是否总是像出站通道适配器那样设计
在文档和这里,我只阅读了关于这些适配器的内容,但我并不清楚 一般来说,是的,但这不是必需的-任何可以创建spring消息的东西都可以是源,任何可以接受的东西都可以是接收器。Tnx!但是,Spring集成组件始终是吗?
我们有一个每分钟可以消耗大约300条JMS消息的应用程序。我们需要将速度提高到每分钟3000条消息
我创建了一个简单的测试程序,它从队列中读取消息并记录消息。不涉及任何处理,所以我希望速度很快。然而,日志记录仍以每分钟400条消息的速度进行
下面是我节目的节选
<int-jms:message-driven-channel-adapter id="testJmsInboundAdapter"
auto-startup="true"
destination="testQue
我发现,一旦我将Spring集成更新到最新的v4.3.10,它就会显示很多警告,说明由于标题是只读的,所以对填充忽略了标题
e、 g
在早期版本的SI中没有此类警告。造成这种情况的根本原因是什么?请参见此处:
有些标题实际上是只读的,通过更改,您可以知道哪个标题不会被填充
在您的案例中,故事是关于id标题的
您可以将o.s.i.support.MessageBuilder的日志记录级别提高到warn,以避免这种噪音
同时,请与我们分享构建新消息并在日志中获取该消息的代码。根据JIRA问题,添加该
我有一个要求,当它失败时,我需要进行rest调用,我必须重试3次,根据收到的状态代码,我需要执行不同的操作,我找不到合适的spring integration dsl示例。如何配置错误处理程序并重试
@Bean
public IntegrationFlow performCreate() {
return IntegrationFlows.from("createFlow")
.handle(Http.outboundGateway("http://localho
是否有一种方法可以使用Hystrix命令包装http:outbound gateway REST API调用。我看到了一些关于使用自定义请求处理程序建议的参考,但不确定我将如何去做 请参见此处:。我不能以重复的形式结束你的问题,因为没有人投票支持我的答案。但仍然:相同的解决方案必须应用于您的用例:
@ServiceActivator(inputChannel = "serviceChannel")
@HystrixCommand(fallbackMethod = "serviceFallback
在使用队列中的消息时,我使用DUPS_OK_确认模式,我需要检测重复消息并忽略它们
.from(Jms.messageDrivenChannelAdapter(activeMQConnectionFactory)
.destination(sourceQueue)
.configureListenerContainer(spec -> {
我有一个用例,根据一些路由规则,我需要使用rabbitmq或ibm mq中间件,我使用的是基于Java的配置。这是我的rabbitmq bean,我如何为IBM MQ定义类似的内容
@Bean
@ServiceActivator(inputChannel = "rabbitChannel")
public AmqpOutboundEndpoint amqpOutbound(AmqpTemplate amqpTemplate) {
AmqpOutboundEndpoint outbound
如何通过Java配置为Spring集成中的存储过程(Oracle)配置@InboundChannelAdapter?我使用xml配置找到了示例/参考,但在Java配置上找不到参考。请参阅
以下Spring引导应用程序显示了如何使用Java配置入站适配器的示例:
抱歉-这是JPA,不是存储过程-但它是相同的概念。您可以在XML模式中找到类名。MessageSource是一个StoredProcPollingChannelAdapter,您需要一个storedprocexector来获取数据源。目前
在我的Spring Boot应用程序中,我有以下入站网关(Java DSL):
@Bean
公共集成流upperCaseFlow(){
返回积分流
.来自(
Http.inboundGateway(“/conversions/upperCase”)
.requestMapping(r->r.methods(HttpMethod.POST).consumes(“text/plain”))
.requestPayloadType(String.class)
.id(“大写网关”)
)
.handle
这是我的日志,为什么我的端点启动了两次??
我的配置问题
61: 2020/09/16 15:56:20,288 4052 [INFO] [main] [integration.endpoint.AbstractEndpoint.start(AbstractEndpoint.java:159)] : started bean 'transactionService.createTransaction.serviceActivator'
63: 2020/09/16 15:56:20,288 40
我正在通过spring集成开发一个多属性的微服务。我从数据库中获取每个属性的登录凭据,如登录表。登录表包含以下字段;LOGIN.username、LOGIN.pass和LOGIN.period(轮询周期)。如果我想使用基于LOGIN.period字段的不同轮询器配置使micro服务正常工作,我该怎么做
@Bean
public IntegrationFlow start() {
return IntegrationFlows
.fr
我试图使用spring集成文件轮询一个目录,并从该目录中放置的文件创建一个反应流。这在很大程度上是有效的,但是当我放置一个文件但没有订户时,我会得到一个异常。为了演示这个问题,我编写了一个小型演示应用程序:
import org.reactivestreams.Publisher;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootA
上一页 1 2 ...
5 6 7 8 9 10 11 ...
下一页 最后一页 共 48 页