我可以登录 WSO2 消息处理器调用的 Web 服务响应文件吗?

Can I log in a file the web service response called by a WSO2 message processor?

我是 WSO2 ESB 的新手,我遇到了以下问题。

在我的 ESB 流程中,我有一个 Store mediator 将 XML 文档放入 WSO2 MB队列,这是我消息存储的配置:

<?xml version="1.0" encoding="UTF-8"?>
<messageStore class="org.apache.synapse.message.store.impl.jms.JmsStore" name="glisMessageStore" xmlns="http://ws.apache.org/ns/synapse">
    <parameter name="store.jms.destination">glisQueue</parameter>
    <parameter name="store.producer.guaranteed.delivery.enable">false</parameter>
    <parameter name="store.jms.cache.connection">true</parameter>
    <parameter name="java.naming.factory.initial">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
    <parameter name="connectionfactory.QueueConnectionFactory">amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5675'</parameter>
    <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
</messageStore>

如您所见,我的文档已放入 glisQueue 队列。

然后我(在这个项目中)部署了一个名为 glisMessageProcessorMessage Processor 来检查队列是否为空以及是否包含一些 XML 它发送到的文档和执行 Http 调用的外部 Web 服务,这是我的消息处理器的配置:

<?xml version="1.0" encoding="UTF-8"?>
<messageProcessor class="org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor" messageStore="glisMessageStore" name="glisMessageProcessor" targetEndpoint="glisEndpoint" xmlns="http://ws.apache.org/ns/synapse">
    <parameter name="client.retry.interval">1000</parameter>
    <parameter name="max.delivery.attempts">4</parameter>
    <parameter name="member.count">1</parameter>
    <parameter name="message.processor.reply.sequence">glisResponseSequence</parameter>
    <parameter name="max.delivery.drop">Disabled</parameter>
    <parameter name="interval">1000</parameter>
    <parameter name="is.active">true</parameter>
</messageProcessor>

如您所见,它使用 glisMessageStore 作为数据源(因此它使用其中的 glisQueue 队列 defiend 来获取要发送的数据)并将这些数据发送到 glisEndpoint,这是我的 Web 服务的端点(它在我的项目中定义)。

工作正常,数据已正确发送到由 glisEndpoint 表示的外部 Web 服务。

我唯一的问题是:我的网络服务 returns 调用时出现一条消息(包含一些我需要以某种方式存储的信息)。

我能否以某种方式配置我的 glissMessageProcessor 以检索这些响应消息并将其放入日志文件中?

您只需在名为 "glisResponseSequence" 的序列中使用日志中介:这是您使用 "message.processor.reply.sequence" 参数定义的内容,这就是响应所在的位置。