如何在mule studio中将空节点作为SOAP请求的一部分发送?

如何在mule studio中将空节点作为SOAP请求的一部分发送?,soap,mule,mule-studio,Soap,Mule,Mule Studio,我正在尝试使用Web服务连接器在mule studio中配置流。端点所期望的SOAP主体如下所示: <soapenv:Body> <v4:readFields> <filter> <type>?</type> <id>?</id> <name> <operator>?</operator>

我正在尝试使用Web服务连接器在mule studio中配置流。端点所期望的SOAP主体如下所示:

<soapenv:Body>
  <v4:readFields>
     <filter>
        <type>?</type>
        <id>?</id>
        <name>
           <operator>?</operator>
           <value>?</value>
        </name>
     </filter>
     <pageNumber>?</pageNumber>
  </v4:readFields>
</soapenv:Body>
节点本身是必需的,但内容是可选的,因此我想让我的流发送一个正文,如:

<soapenv:Body>
  <v4:readFields>
     <filter />
     <pageNumber>1</pageNumber>
  </v4:readFields>
</soapenv:Body>
是否有方法设置消息负载以发送此请求

运行Anypoint Studio 5.1.0和Mule ESB 3.6。 我的当前流配置:

<flow name="GetFieldInfo">
    <http:listener config-ref="localhost" path="/fields" doc:name="HTTP"/>
    <enricher source="#[payload]" target="#[flowVars.sessionId]" doc:name="GetSessionId">
        <flow-ref name="GetSessionId" doc:name="Login"/>
    </enricher>
    <data-mapper:transform config-ref="Xml_loginResponse__To_Xml_sessionHeader_" input-ref="#[flowVars[&quot;sessionId&quot;]]" target="#[message.outboundProperties[&quot;soap.sessionHeader&quot;]]" doc:name="Set Session Header"/>
    <ws:consumer config-ref="BrontoAPI" operation="readFields" doc:name="Web Service Consumer"/>
    <echo-component doc:name="Echo"/>
</flow>

您可以使用mule解析模板发送带有变量数据的静态xml

样本:

<soapenv:Body>
 <v4:readFields>
 <filter />
 <pageNumber>#[payload]</pageNumber>
 </v4:readFields>
</soapenv:Body>

您可以在此处找到文档

Mule版本?流量配置?在问题中添加了版本和当前配置。谢谢!很难知道这里发生了什么,尤其是当执行命中ws:consumer时,如果看不到消息负载的正确性。Mule目前发送什么?具有空子元素的筛选器元素?在该配置中,由于有效负载为空,它将中断。流中的enricher和datamapper只接触soap头,而不是消息负载。如果我使用变量->数据映射器在soap正文中设置页码,它将因无法验证参数筛选器而中断。调试器只是将我的有效负载显示为字节数组,所以我不知道实际发生了什么。什么会使有效负载无效?如果在ws:consumer之前添加一个记录器,它会将负载记录为null吗?