Почему WSO2 API Manger не может выполнить запрос PUT, если существуют политики посредничества? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть настройки передачи для запроса и ответа: enter image description here

для запроса (jms_in_flow) :

<?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="remove" 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"/>
            <property expression="$ctx:API_NAME" name="api_name" scope="transport" type="STRING"/>
            <property name="api_message_id" expression="get-property('transactionId')" scope="transport"/>
            <property value="REQUEST" name="api_message_type" scope="transport" type="STRING"/>
            <property expression="$ctx:REST_FULL_REQUEST_PATH" name="api_request_path" scope="transport" type="STRING"/>
            <property expression="$ctx:api.ut.HTTP_METHOD" name="api_method" scope="transport" type="STRING"/>
            <property expression="$ctx:api.ut.application.name" name="api_app_name" scope="transport" type="STRING"/>
            <property expression="$ctx:api.ut.userName" name="api_username" scope="transport" type="STRING"/>
            <call>
                <endpoint>
                    <address uri="jms:"AAA"/>
                </endpoint>
            </call>
            <drop/>
            <send/>
        </sequence>
    </target>
</clone>

для ответа (jms_out_flow):

<sequence name="jms_out_flow" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<clone continueParent="true">
    <target>
        <sequence>
            <property name="RESPONSE" value="true"/>
            <property name = "api_response_time" expression = "get-property('SYSTEM_TIME')" scope="transport"/> 
            <property name="api_message_id" expression="get-property('transactionId')" scope="transport"/>
            <property value="RESPONSE" name="api_message_type" scope="transport" type="STRING"/>
            <property expression="$axis2:HTTP_SC" name="http_status" scope="transport" type="STRING"/>
            <call>
                <endpoint>
                    <address uri="jms:/AAA"/>
                </endpoint>
            </call>
            <drop/>
        </sequence>
    </target>
</clone>

Когда я выполняю запрос GET в WSO2 Manager, он выполняется быстро и успешно, а запрос PUT не выполняется и сбрасывается послеВремя истекает (~ 2 минуты).Когда я удаляю настройки посредника для запроса (jms_in_flow), запрос PUT начинает работать нормально.
Я думаю, что ошибка в jms_in_flow , но я не могу ее найти.Я нашел в Google: Введите описание ссылки здесь enter image description here Обработка методов get и put различна, но я не знаю, как ее применить.ОБНОВИТЬ.LOGS

[2019-07-01 13:38:06,083] ERROR -  Unexpected error during sending message out {org.apache.synapse.core.axis2.Axis2Sender}
   org.apache.axis2.AxisFault: Did not receive a JMS response within 30000 ms to destination : temp-queue://ID:c115c33d0c81-45342-543:1:1 with JMS correlation ID : ID:c115c33d0c81-45342-543:1:1:1:1
at org.apache.axis2.transport.base.AbstractTransportSender.handleException(AbstractTransportSender.java:234)


at org.apache.axis2.transport.jms.JMSSender.waitForResponseAndProcess(JMSSender.java:435)


at org.apache.axis2.transport.jms.JMSSender.sendOverJMS(JMSSender.java:369)


at org.apache.axis2.transport.jms.JMSSender.sendMessage(JMSSender.java:192)


at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)


at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)


at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:185)


at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:167)


at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)


at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:603)


at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:85)


at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:511)


at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:384)


at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:65)


at org.apache.synapse.mediators.builtin.CallMediator.handleNonBlockingCall(CallMediator.java:276)


at org.apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:121)


at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)


at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)


at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)


at org.apache.synapse.mediators.MediatorWorker.run(MediatorWorker.java:80)


at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)


at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)


at java.lang.Thread.run(Thread.java:748)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...