2013-06-04 38 views
1

enter image description hereREST API:使用骨料和迭代中保問題

錯誤消息: [2013年6月4日11:26:41039] INFO - LogMediator到:http://www.w3.org/2005/08/addressing/anonymous,WSAction:,的SOAPAction:,郵件ID:甕:UUID:fce9fc4f-a071-4f62-8b5f-e982cf404619,方向:響應,信封:不在GZIP格式 [2013年6月4日11:26:41055] ERROR - AggregateMediator錯誤評估表達式:/ PACKAGE_OFFERS 有機.apache.synapse.SynapseException:無法找到要聚合的匹配元素。 在org.apache.synapse.mediators.eip.EIPUtils.enrichEnvelope(EIPUtils.java:149) 在org.apache.synapse.mediators.eip.aggregator.AggregateMediator.getAggregatedMessage(AggregateMediator.java:393) 的組織。 apache.synapse.mediators.eip.aggregator.AggregateMediator.completeAggregate(AggregateMediator.java:340) at org.apache.synapse.mediators.eip.aggregator.AggregateMediator.mediate(AggregateMediator.java:285) at org.apache。 synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71) 在org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114) 在org.apache.synapse.rest.Resource.process( Resource.java:297) at org.apache.synapse.rest.API.process(API.java:265) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core。 axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:182) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:443) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive( SynapseCallbackReceiver.java:166) 在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 在org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:217) 在org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:172) a t java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java :722) WARN - SourceHandler讀取請求後連接超時:fe80:0:0:0:b1ac:716:923:abd3%33:61567-> fe80: 0:0:0:b1ac:716:923:abd3%33:8280

我調用DS-1 [XML over REST-1]調用兩個DataServer Services DS-1和DS- GET],我對一些重複元素執行迭代並調用DS-2 [XML over REST-GET]。在這樣做的過程中,我得到了上面列出的Error。我正在嘗試獲取正確的元素。請讓我知道是否需要任何額外的配置。

源代碼,請參閱本 LINK.

回答

0

您使用收到sequence.So,第一個端點的結果(響應)將在該序列被接收(即:迭代序列)。之後,沒有接收序列。消息流被破壞。您在初始序列中使用了聚合,這沒有意義,因爲第一個端點的響應將在iterate-seq接收。

因此,彙總將針對您發送到您的API的初始請求發生。

+0

##你用骨料在初始序列號我使用的內部API的期待的是,在爲第一服務的請求將被通過反覆發送,其響應應被捕獲的。你建議明確設置。我從博客http://dakshithar.blogspot.in/2012/07/routing-and-service-chaining-with-wso2_23.html吸取了靈感。唯一的區別是它使用SOAP,我正在使用REST。感謝您的回覆.. –

-2

如果您還沒有任何ESB決定...考慮UltraESB

0

你能嘗試關閉<inSequence>下面提到前加入<send/>調停。

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

這將確保您的請求將被outSequence接收。