问题标签 [spring-integration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-integration - Spring 集成与 ServiceMix ESB
我正在研究在我的项目中使用的 EIP/ESB 解决方案。第一个原因是解耦模块和不同的子系统,还重构了一些部分以便于与第 3 方系统集成。将来我认为我将需要很多 EIP,如过滤、拆分等。我已经检查了 apache camel + 服务组合、spring 集成。我也知道 tibco 和 mule。Service mix + camel 提供了丰富的组件和协议栈,但它不是和activeMQ broker绑定的吗?如果将来我需要使用 tibco jms 实现怎么办?Spring Integration - 是不是 ESB?我肯定需要一些管道(通道)在内存中用于某些模块之间的本地 JVM 消息传递,并在消息传递在集群中时分发。除此之外,SI 是否与任何 jms 实现相关联?
所以要求: - 本地和分布式方式的消息路由 - JMS 实现的轻松切换,例如现在的 ActiveMQ,之后可能是 tibco - 轻量级 - 简单 - 全套标准协议、组件和适配器 - 我不需要像 twitter 这样的东西, gae之类的
SI 也可以是像 ServiceMix 这样的分布式 ESB 吗?我正在使用 spring IoC,我可以将 SI 与 Mule 等任何其他 ESB 一起使用吗?使用 Spring + SI 有什么特点吗?
spring - JMS消息传递时刷新Spring上下文
当系统收到 JMS 消息时,我想刷新我的应用程序上下文。为了做到这一点,我设置了 Spring Integration jms:message-driven-channel-adapter,它将消息转发到实现 ApplicationContextAware 的服务激活器。此激活器(ConfigurationReloader 类)调用 ConfigurableApplicationContext#refresh() 方法。
下面是示例代码片段:
还有我的激活器:
在传递此类消息的情况下,上下文启动关闭操作但卡在 DefaultMessageListenerContainer bean 关闭:
通过 JMS 调用此操作对我来说至关重要,因为新的配置参数与消息一起传递。它是基于最新 SpringCore 和 Spring Integration 的标准 Spring MVC 应用程序,前端带有 DispatcherServlet。另外我确信这是与 JMS 相关的问题,因为通过控制器调用 ConfigurationLoader 可以正常工作。
正如我调试的那样,它在 DefaultMessageListenerContainer#538 行调用(lifecycleMonitor 上的 wait() 方法)之后卡住了:
...没有人在监视器上调用 notify / notifyAll 所以也许这是某种错误?
感谢您的任何提示!
java - Spring 集成网关中的静态和动态标头
我可以使用以下方法向网关添加动态标头:
或者,我可以在 xml 配置中添加一个静态标头:
目前我的代码如上所示,设置了动态代码,但没有设置静态代码。如果我删除动态注释,则静态注释有效,但显然不是动态注释。我怎样才能让两者都工作?是否可以使用注释设置静态标头值?如果我错了,请纠正我,但我认为不可能从配置文件中的参数设置动态参数 - 请参阅(jira INT-1860)
spring - 如何在 SpringSource ToolSuite (Eclipse) 中的 Spring Bean 配置文件中消除此警告
我有以下小文件来重现警告:
这会产生警告“未找到引用的 bean 'org.springframework.integration.config.ServiceActivatorFactoryBean#0'”。“stageEventChannel”和“stageScoreUpdateService”不应该是警告的原因,因为我可以在我的系统中使用不同的渠道和不同的服务来重现它。无论如何,警告似乎是指 ServiceActivatorFactoryBean,这不是我正在实现的。
我正在使用 SpringSource Tool Suite 2.8.0.RELEASE。
我在论坛上搜索过,只发现一个人有非常相似的问题但没有回复的帖子。
spring - Spring 集成 - 配置 DefaultMessageListenerContainer 以解析多个目的地
我需要配置 DefaultMessageListenerContainer 来解析多个目标主题。我不想实例化多个容器,我想知道如何配置它,或者即使它是可能的。
谢谢
xml - 使用 xpath 获取 xsi:type 的值
我正在尝试确定正确的 XPath 表达式以返回元素xsi:type
上的属性值。Body
我已经尝试过似乎没有运气的一切。根据我读到的内容,这似乎很接近,但显然不正确。有什么快速指导可以让我最终休息吗?
我希望它返回v20:SmsMessageV1RequestBody
java - Spring 集成持久 pub 子通道
是否可以在 spring integration 2.1 中配置持久的 pub 子通道?
quartz-scheduler - Spring Integration 2 与 Quartz 调度器
我是 Spring 集成的新手。
我已经配置了一个 Spring 文件入站通道适配器,例如
现在这工作正常。但这需要部署在集群环境中。我想确保集群中的多个实例不会尝试读取同一个文件。那么这会在这样的环境下工作吗?
如果没有,我可以像这样使用 Quartz 调度程序:
这会工作并解决我的问题吗?还是我必须使用事务?
我希望这个问题很清楚。
谢谢,阿迪
java - 在 Spring Integration 中等待所有线程完成
我有一个严重依赖 Spring Integration 的自执行 jar 程序。我遇到的问题是程序在其他 Spring bean 完全完成之前终止。
下面是我正在使用的代码的精简版本,如果需要,我可以提供更多代码/配置。入口点是一个 main() 方法,它引导 Spring 并启动导入过程:
DataImporter 包含一个简单的循环,将消息发送到 Spring Integration 网关。这为流提供了一种主动的“推送”方法,而不是轮询数据的常用方法。这就是我的问题所在:
为了完整起见,流 XML 看起来像这样:
流程有效地启动和处理项目,但是一旦 startImport() 循环完成,主线程就会终止并立即关闭所有 Spring Integration 线程。这会导致竞争条件,最后 (n) 项在程序终止时未完全处理。
我想维护我正在处理的项目的引用计数,但这被证明是相当复杂的,因为流程经常将消息拆分/路由到多个服务激活器 - 这意味着很难确定每个项目是否具有“完成的”。
我认为我需要一些方法来检查是否没有 Spring bean 仍在执行,或者在终止之前标记发送到网关的所有项目都已完全处理。
我的问题是,我该如何做这些,或者有没有更好的方法来解决我没有想到的问题?
spring - 数组方法参数的 Spring 表达式语言 (SpEL)
我有一个 Spring Integration 项目,我试图在 bean 上调用一个将String
对象和Class
对象作为参数的方法。我想传递给它的类对象是,Long[].class
但我不知道正确的语法。我尝试了以下各种组合但无济于事:
现在我只是将调用包装在另一个 java 类中(对Class
类型进行硬编码)并通过 SpEL 调用它。数组类参数的正确语法是什么?