2013-06-04 39 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接收。