在此示例中,我有一个代理服务,它接收来自客户端的传入消息。通过这个传入的消息,我从中提取了我需要的信息,在这种情况下,使用属性调解器的偏移量和限制,如您在这一行中看到的:
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" name="offset" expression="//p:listarPersonas/p:offset"/>
我在这个序列中使用日志中介,因为我需要查看存储在属性中的值来调试东西。
之后,我使用 payloadFactory 创建了一条新消息,因为我需要使用该格式将此消息发送到应用程序服务器。
<payloadFactory>
<format>
<p:listar_persona_paginado xmlns:p="http://ws.wso2.org/dataservice">
<p:offset>$1</p:offset>
<p:limit>$2</p:limit>
</p:listar_persona_paginado>
</format>
<args>
<arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" expression="//p:listarPersonas/p:offset"/>
<arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" expression="//p:listarPersonas/p:limit"/>
</args>
</payloadFactory>
然后我使用发送中介将创建的消息发送到应用程序服务器中的端点:
<send>
<endpoint>
<address uri="http://127.0.0.1:9765/services/buscarPersona"/>
</endpoint>
</send>
所有的部分在一起:
<sequence xmlns="http://ws.apache.org/ns/synapse">
<log>
<property name="SECUENCIA" value="ENTRADA DEL LISTADO DE PERSONAS"/>
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" name="offset" expression="//p:listarPersonas/p:offset"/>
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" name="limit" expression="//p:listarPersonas/p:limit"/>
</log>
<payloadFactory>
<format>
<p:listar_persona_paginado xmlns:p="http://ws.wso2.org/dataservice">
<p:offset>$1</p:offset>
<p:limit>$2</p:limit>
</p:listar_persona_paginado>
</format>
<args>
<arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" expression="//p:listarPersonas/p:offset"/>
<arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" expression="//p:listarPersonas/p:limit"/>
</args>
</payloadFactory>
<send>
<endpoint>
<address uri="http://127.0.0.1:9765/services/buscarPersona"/>
</endpoint>
</send>
</sequence>