- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Spring Integration XPath Splitters 和 Header Enrichers,如下所示:
<!-- split the folders-->
<int-xml:xpath-splitter input-channel="PQAdditionalContactHistory-Split-Filtered-Folders-Channel" output-channel="PQAdditionalContactHistory-Split-Filtered-Folders-Channel" >
<int-xml:xpath-expression expression="//response/results/PQCallHistory/row"/>
</int-xml:xpath-splitter>
<int:chain input-channel="PQAdditionalContactHistory-Split-Filtered-Folders-Channel" output-channel="PQContactHistory-InputChannel" >
<int:service-activator ref="msgHandler" method="buildMessageFromExtSysResponse" />
<int-xml:xslt-transformer xsl-resource="${stylesheet.PQAdditionalContactHistory-To-PQContactHistory-Request}" />
</int:chain>
<int:channel id="PQContactHistory-InputChannel" />
<int:chain input-channel="PQContactHistory-InputChannel" output-channel="PQContactHistory-OutputChannel">
<int-xml:xpath-splitter>
<int-xml:xpath-expression expression="//PQCallHistory" namespace-map="xmlMessageNamespace" />
</int-xml:xpath-splitter>
<int-xml:xslt-transformer xsl-resource="${stylesheet.PQContactHistoryStoredProcData}" />
<!-- Store the original payload in header for future purpose -->
<int:header-enricher default-overwrite="true" should-skip-nulls="true" >
<int:header name="${headerNames.originalPayload}" expression="payload" />
</int:header-enricher>
</int:chain>
这里,计划是使用聚合器,并在使用这些拆分消息执行一些操作后合并所有拆分消息。令人惊讶的是,所有拆分消息列表并未立即到达聚合器。当我进一步调查以了解根本原因时,我发现拆分消息的相关 ID 在第二个拆分器之后发生了更改。但是,我需要由第一个拆分器拆分的所有消息列表作为一个 block 到达聚合器端。关于如何实现这一目标有什么想法吗?如果我的问题不清楚,请告诉我。
我使用默认<aggregator>
行为:<int:aggregator input-channel="test" ref="xmlAggregator" method="aggreagateAdditionalFolders"></int:aggregator>
。
最佳答案
这是事实,因为任何 splitter
提供SequenceDetails
( sequenceId
、 sequenceSize
等)默认在其范围内并将它们存储在 MessageHeaders
中通过stack
方式。
不幸的是<int-xml:xpath-splitter>
doesn't support apply-sequence="false"
还没有。
但是您可以按照该 Pull 请求的 JIRA 解决方法进行操作。
这只是克服您的用例的一方面。
另一件事是围绕<aggregator>
。有需要知道你如何correlate
和release
在那里分组。
我可能猜你只是依赖默认的 <aggregator>
行为 - 处理这个问题SequenceDetails
header 。
这不太好。第一个之后xpath-splitter
,sequenceSize
header 已获取作为多个回复消息的值。既然你要去split
他们每人一次,没有信息有多少元素会到达 <aggregator>
。
关于sequenceNumber
也是如此。 header ,表示 <aggregator>
的标记是否将消息应用到组。
所以,请显示您的聚合器配置。之后我们将尝试共同提供解决方案。
无论如何,在这种情况下,您应该提供一些自定义的 ReleaseStrategy
对于聚合器。CorrelationStrategy
可能会保留为默认值。
更新
示例如何配置XPathMessageSplitter
作为通用 bean:
<int:service-activator>
<beans:bean class="org.springframework.integration.xml.splitter.XPathMessageSplitter">
<beans:constructor-arg type="org.springframework.xml.xpath.XPathExpression">
<int-xml:xpath-expression expression="//PQCallHistory" namespace-map="xmlMessageNamespace" />
</beans:constructor-arg>
</beans:bean>
</int:service-activator>
关于java - 使用 Splitter 和其他一些组件后如何保持相同的相关 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24531553/
我正在寻找一种巧妙的方法来调整 div 的大小在一页上。 有一个例子 here . 我还没有找到任何具体的例子,但我相信有人已经解决了这个问题。 谢谢 最佳答案 有一个 Svelte 自己内部使用的
拖动拆分器时,如何调整 xul 窗口中特定节点的大小? 由于 xul 窗口的复杂性,无法使用 resizebefore/resizeafter 属性。 我试过使用 ondrag分离器上的事件,但它根本
假设你有这条路线: from("direct:processOrders") .process(new MultipleOrdersProcessor()) .to("direct:done") Mu
我正在做一个实验来拆分一个奇数字符串并打印出前半部分、中间字符和后半部分。代码工作正常,除了在打印下半部分时我无法摆脱中间的字符。在这里: str = input("Enter an odd leng
这里是 Java 8 和 Apache Camel 2.19.5。我有以下 Bean 处理器: @Component("foobarResolver") public class FoobarReso
假设你有这条路线: from("direct:processOrders") .process(new MultipleOrdersProcessor()) .to("direct:done") Mu
我正在做一个实验来拆分一个奇数字符串并打印出前半部分、中间字符和后半部分。代码工作正常,除了在打印下半部分时我无法摆脱中间的字符。在这里: str = input("Enter an odd leng
我有一个面板,其中包含 3 个项目。一个面板,然后一个水平分离器,然后一个面板。这种布局效果很好,用户可以轻松地上下拖动分隔符来调整相邻面板的大小。 但是如何以编程方式设置分割器的位置?理想情况下,我
我正在为我的 Sentence Splitter 应用程序寻找一个测试文件,我希望该文件能够涵盖尽可能多的案例。 谢谢! 最佳答案 阅读 Lingua::Sentence 的文档.它命名了它使用的语料
我想连接分离器以在 4 个小部件之间创建一个“交叉”分离器。我尝试使用两个分离器之间的信号和槽来做到这一点,即使没有发生错误,行为也不是我希望的(事实上什么也没有发生)。 import sys fro
我正在尝试制作一个内部有透明正方形的窗口,并且我希望允许用户以他/她想要的任何方式重新调整它的大小。此代码适用于垂直和水平调整大小
我正在使用位于此处的 jquery 拆分器插件:http://methvin.com/splitter/ 它在我使用的 jquery 版本上工作正常,直到我启用 resizeToWidth 属性然后它
我对 Guava 的 split 可能性很感兴趣: Splitter.on("|").split("foo|bar|baz"); // => "foo", "bar", "baz" 这可以正常工作。
我想为 Java 创建一个 Guava Splitter,它可以将 Java 字符串作为一个 block 来处理。例如,我希望以下断言为真: @Test public void testSplitte
我正在尝试使用 Guava splitter 解析日志文件。日志文件如下所示: appName=XXX clientIp=X.X.X timestamp="2017-06-05T13:22:12-07
我有一个转换器,它返回一个 Map 作为结果。然后将该结果放入输出 channel 。我想做的是为 map 中的每个键进入不同的 channel 。我如何在 Spring Integration 中配
我在 amazon S3 上获取文件列表并遍历文件列表并一次处理一个文件。对应流程如下--
我被难住了。 I went to the store at the mall at seven thirty in a big huff. 期望 Regex.Split 产生 我去了 到商店 在商场
我正在尝试按行拆分 csv 文件。为此,我尝试在流程中使用以下拆分器: 但是,尽管该文件有很多行,但我在日志中收到以下消息: Splitter returned no results. If t
我正在使用 Spring Integration XPath Splitters 和 Header Enrichers,如下所示:
我是一名优秀的程序员,十分优秀!