Как получить информацию об ОШИБКЕ от WSO2? - PullRequest
0 голосов
/ 17 июня 2019

Я пишу систему регистрации для 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...