簡體   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