Eclipse在发送后删除drop mediator

时间:2016-09-11 14:59:18

标签: wso2 wso2esb

我尝试使用FAULT实现这样的验证

<on-fail>
               <makefault version="soap11">
                  <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/>
                  <reason value="Invalid Request!!!"/>
                  <role/>
               </makefault>
               <log level="full"/>
               <property name="RESPONSE" value="true"/>
               <header name="To" action="remove"/>
               <send/>
               <drop/>
            </on-fail>

因此我在发送了什么函数之后添加了DROP就像我想要的那样(没有DROP我刚刚收到了FAULT消息,但是进程没有停止导致调用一些输入错误的端点的原因)

然后我需要检查一些东西,然后在Eclipse中打开相同的序列,发现DROP已被删除。 我试图拖放DROP但收到一条错误消息,即SEND调解员不能被另一个调解员跟踪。

为什么?

你碰巧知道如何实现SEND + DROP的更好方法,所以当我在Eclipse中打开它时,我没有失去这个风险吗?

很多!

2 个答案:

答案 0 :(得分:0)

发送后您无需添加Drop Mediator。在发送调解器之后添加任何调解器是无效的,因为在发送之后将删除消息上下文。您可以尝试添加响应中介,而不是SEND中介。你的用例不太清楚。

答案 1 :(得分:0)

在Eclipse Developer Studio中,我们无法在SEND mediator / RESPOND介体/ DROP介体之后指定任何介体。这是因为理想情况下,在这些调解员之后不应继续调解流程。

对于您的情况,您可以尝试CALL中介[1]而不是SEND中介,然后是DROP中介,如下所示

    <on-fail>
           <makefault version="soap11">
              <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/>
              <reason value="Invalid Request!!!"/>
              <role/>
           </makefault>
           <log level="full"/>
           <property name="RESPONSE" value="true"/>
           <header name="To" action="remove"/>
           <call/>
           <drop/>
   </on-fail>
  1. https://docs.wso2.com/display/ESB490/Call+Mediator