WSO2 ESB как отправить массиву пустую ошибку - PullRequest
0 голосов
/ 04 декабря 2018

I Конфигурирую URL как:

https://htygnfgvsccl.com:6753/intellige/vehicle/getAlerts 

этот URL иногда получает данные типа

{
"alertsList": [

                   {

                    "vehicleNo": "45342",

                    "alertName": "Stop Skipped",

                    "depotName": "akividu"
                   },
                    {

                    "vehicleNo": "674894",

                    "alertName": "Stop Skipped",

                    "depotName": "guntur"
                   }
                ]
            }

, но иногда каждый раз получает данные типа

{
"alertsList": []
}

каждый разКод ответа 200, но как отправить с сообщением об ошибке в случае оповещенияСписок пуст

vehiclegetAlertsapi

<?xml version="1.0" encoding="UTF-8"?>
<api context="/intellige/vehicle/getAlerts" name="vehiclegetAlertsapi" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="GET">
        <inSequence>
            <property description="http" name="HTTP_SC" scope="axis2" type="STRING" value="404"/>
            <log level="full"/>
            <send>
                <endpoint key="vehiclegetAlertsendpoint"/>
            </send>
        </inSequence>
        <outSequence>
            <switch source="get-property('axis2','HTTP_SC')">
                <case regex="200">
                    <log description="200log" level="custom">
                        <property expression="$ctx:ERROR_CODE" name="200reserrorcode"/>
                    </log>
                    <send/>
                </case>
                <default>
                    <log description="reslog" level="custom">
                        <property expression="$ctx:ERROR_CODE" name="reserrorcode"/>
                        <property expression="$ctx:ERROR_MESSAGE" name="reserrormessage"/>
                        <property expression="get-property('axis2','HTTP_SC')" name="reshttpsc"/>
                    </log>
                </default>
            </switch>
            <clone continueParent="true">
                <target>
                    <sequence>
                        <sequence key="vehiclegetAlertsmail"/>
                    </sequence>
                </target>
            </clone>
            <send/>
        </outSequence>
        <faultSequence>
            <switch source="get-property('axis2','HTTP_SC')">
                <case regex="200">
                    <log description="200log" level="custom">
                        <property expression="$ctx:ERROR_CODE" name="200reserrorcode"/>
                    </log>
                </case>
                <default>
                    <log description="reslog" level="custom">
                        <property expression="$ctx:ERROR_CODE" name="reserrorcode"/>
                        <property expression="$ctx:ERROR_MESSAGE" name="reserrormessage"/>
                        <property expression="get-property('axis2','HTTP_SC')" name="reshttpsc"/>
                    </log>
                </default>
            </switch>
            <clone continueParent="true">
                <target>
                    <sequence>
                        <sequence key="vehiclegetAlertsmail"/>
                    </sequence>
                </target>
            </clone>
            <send/>
        </faultSequence>
    </resource>
</api>

vehiclegetAlertsendpoint

 <?xml version="1.0" encoding="UTF-8"?>
<endpoint name="vehiclegetAlertsendpoint" xmlns="http://ws.apache.org/ns/synapse">
    <http method="get" uri-template="https://htygnfgvsccl.com:6753/intellige/vehicle/getAlerts "/>
</endpoint>

vehiclegetAlertsmail:

   <?xml version="1.0" encoding="UTF-8"?>
<sequence name="vehiclegetAlertsmail" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <log level="custom">
        <property name="status" value=" vehileget alert Details Sending mail"/>
    </log>
    <property expression="get-property('axis2','HTTP_SC')" name="ErrorMessage" scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
    <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
    <property name="ContentType" scope="axis2" type="STRING" value="text/plain"/>
    <property name="Subject" scope="transport" type="STRING" value="vehileget alert api not working"/>
    <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
    <property name="FORCE_SC_ACCEPTED" scope="axis2" type="STRING" value="true"/>
    <payloadFactory media-type="json">
        <format>{"vehileget alert api not working":"$1"}</format>
        <args>
            <arg evaluator="xml" expression="$ctx:ErrorMessage" xmlns:ns="http://org.apache.synapse/xsd"/>
        </args>
    </payloadFactory>
    <call>
        <endpoint key="vehiclegetAlertsmailid"/>
    </call>
    <drop/>
</sequence>

vehiclegetAlertsmailid:

<?xml version="1.0" encoding="UTF-8"?>
<endpoint name="vehiclegetAlertsmailid" xmlns="http://ws.apache.org/ns/synapse">
    <recipientlist>
        <endpoint>
            <address uri="mailto:aisha@gmail.com"/>
        </endpoint>
    </recipientlist>
</endpoint>

получить 200 код ответа отправлять данные автоматически в случае, если любой другой ответ отправлять на почту мой почтовый идентификатор, prsent, моя проблема - это мой url отдыха некоторое время общее количество данных, как alertsListс передачей данных только в некоторых случаях alertsList приходя не передавая данные в этом случае, как отправить почту

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...