繁体   English   中英

REST API:使用Aggregate和Iterate Mediator的问题

[英]REST API : Issues using Aggregate and Iterate Mediator

在此处输入图片说明

错误消息: [2013-06-04 11:26:41,039]信息-LogMediator发送至: http ://www.w3.org/2005/08/addressing/anonymous,WSAction:,SOAPAction:,MessageID:urn:uuid: fce9fc4f-a071-4f62-8b5f-e982cf404619,方向:响应,信封: 不是GZIP格式 [2013-06-04 11:26:41,055]错误-AggregateMediator错误评估表达式:/ PACKAGE_OFFERS org.apache.synapse.SynapseException:可能找不到要汇总的匹配元素。 位于org.apache.synapse.mediators.eip.EIPUtils.enrichEnvelope(EIPUtils.java:149)于org.apache.synapse.mediators.eip.aggregator.AggregateMediator.getAggregatedMessage(AggregateMediator.java:393)在org.apache.synapse org.apache.synapse.mediators.eip.aggregator.AggregateMediator.mediate(AggregateMediator.java:285)上的.mediators.eip.aggregator.AggregateMediator.completeAggregate(AggregateMediator.java:340)在org.apache.synapse.mediators.AbstractListMediator org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)的org.apache.synapse.rest.Resource.process(Resource.java:297)的.mediate(AbstractListMediator.java:71) org.apache.synapse.rest.RESTRequestHandler.process(org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76)的org.apache.synapse.rest.API.process(API.java:265) RESTRequestHandler.java:50),位于org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:182),位于org.apache.synapse.co org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:166)上的re.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:443)在org.apache.axis2.engine.AxisEngine.receive(Axis) java:180)位于org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:217)位于org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:172)位于位于java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)位于java.lang.Thread.run(Thread.java:722) [2013-06-04 11:27:21,022]警告-读取请求后SourceHandler连接超时:fe80:0:0:0:b1ac:716:923:abd3%33:61567-> fe80:0:0: 0:b1ac:716:923:abd3%33:8280

我有一个REST API调用了两个DataServer Services DS-1和DS-2,在调用了DS-1 [基于REST-GET的XML]之后,我对一些重复元素执行了迭代,并调用了DS-2 [基于REST-GET的XML] ]。这样做时,我得到上面列出的错误。 我正在尝试获取正确的元素。 如果需要任何其他配置,请告诉我。

对于源代码,请参考此 链接。

您使用接收序列,因此,第一个端点的结果(响应)将按照该序列(即:迭代序列)被接收,此后没有接收序列。 消息流中断。 您在初始序列中使用了聚合,这没有任何意义,因为来自第一个端点的响应将在iterate-seq处接收。

因此,汇总将针对您发送到API的初始请求进行。

您是否可以在关闭<inSequence>之前尝试添加<send/>介体,如下所述。

            </case>
            <default/>
        </switch>
**<send/>**
    </inSequence>

这将确保outSequence会收到您的请求。

如果您尚未决定使用任何esb…请考虑UltraESB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM