Я пишу систему регистрации для WSO2.Когда я отправляю запрос GET, я получаю информацию (время запроса, имя метода и т. Д.), Для этого я сделал этот файл конфигурации:
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="jms_in_flow" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<property name="transactionId" expression="get-property('MessageID')"/>
<clone continueParent="true">
<target>
<sequence>
<property action="set" name="OUT_ONLY" value="true"/>
<property expression="$ctx:api.ut.api_version" name="api_version" scope="transport" type="STRING"/>
<property expression="$ctx:api.ut.version" name="api_short_version" scope="transport" type="STRING"/>
<property expression="$ctx:api.ut.requestTime" name="api_request_time" scope="transport" type="STRING"/>
<property expression="$ctx:REST_API_CONTEXT" name="api_context" scope="transport" type="STRING"/>
<call>
<endpoint>
<address uri="jms:/WSO2.Logi"/>
</endpoint>
</call>
<drop/>
</sequence>
</target>
</clone>
</sequence>
Из WSO2 я отправляю журналы в очередь, и это работает, но яне знаю, как обрабатывать ошибки.Я пытаюсь это:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="convert">
<payloadFactory media-type="xml">
<format>
<am:fault xmlns:am="http://wso2.org/apimanager">
<am:code>$1</am:code>
<am:type>Status report</am:type>
<am:message>Runtime Error</am:message>
<am:description>$2</am:description>
</am:fault>
</format>
<args>
<arg evaluator="xml" expression="$ctx:ERROR_CODE"/>
<arg evaluator="xml" expression="$ctx:ERROR_MESSAGE"/>
</args>
</payloadFactory>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<property name="HTTP_SC" value="555" scope="axis2"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<property name="ContentType" scope="axis2" action="remove"/>
<property name="Authorization" scope="transport" action="remove"/>
<property name="Access-Control-Allow-Origin" value="*" scope="transport"/>
<property name="Host" scope="transport" action="remove"/>
<property name="Accept" scope="transport" action="remove"/>
<property name="X-JWT-Assertion" scope="transport" action="remove"/>
<property name="messageType" value="application/json" scope="axis2"/>
<send>
<endpoint>
<address uri="jms:/WSO2.Logi"/>
</endpoint>
</send>
</sequence>
где я могу ошибиться?документация: https://docs.wso2.com/display/AM220/Error+Handling
UPD: я применил Fault последовательно, но это мне не помогло
<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="fault_format" trace="disable">
<payloadFactory media-type="xml">
<format>
<Fault>
<ERROR_CODE>$1</ERROR_CODE>
<ERROR_MESSAGE>$2</ERROR_MESSAGE>
<ERROR_DETAIL>$3</ERROR_DETAIL>
</Fault>
</format>
<args>
<arg evaluator="xml" expression="get-property('ERROR_CODE')"/>
<arg evaluator="xml" expression="get-property('ERROR_MESSAGE')"/>
<arg evaluator="xml" expression="get-property('ERROR_DETAIL')"/>
</args>
</payloadFactory>
<send>
<endpoint>
<address uri="jms:/WSO2.LOG.TEST"/>
</endpoint>
</send>
</sequence>