Есть ли способ отправить полезную нагрузку в HTTP Delete в WSO2 EI v6.4 - PullRequest
0 голосов
/ 21 февраля 2020

В настоящее время я пытаюсь получить доступ к любой службе REST для удаления ресурса из моей последовательности EI WSO2. Код выглядит примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="DELETE_COMPANY_INFO" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <log level="custom">
        <property name="Sequence" value="DELETE COMPANY INFO started"/>
    </log>
    <log level="custom">
        <property expression="json-eval($)" name="Request Payload"/>
    </log>
    <property name="NO_ENTITY_BODY" action="set" value="false" type="BOOLEAN" scope="axis2"/>
    <call blocking="true">
        <endpoint>
            <http method="delete" uri-template="http://<IP>:<Port>/companyinfo/<id>">
           </http>
        </endpoint>
    </call>
</sequence>

Как видно, я sh отправляю полезную нагрузку сообщения в эту конечную точку. Однако я не могу отправить это, поскольку полезная нагрузка отбрасывается WSI2 EI v6.4. Журналы ниже

[2020-02-21 14:00:33,127] [micro-integrator]  INFO - LogMediator Sequence = DELETE COMPANY INFO started
[2020-02-21 14:00:33,128] [micro-integrator]  INFO - LogMediator Request Payload = {"CompanyName":"test123"}
[2020-02-21 14:00:33,131] [micro-integrator] DEBUG - header >> "DELETE /companyinfo/123 HTTP/1.1[\r][\n]"
[2020-02-21 14:00:33,131] [micro-integrator] DEBUG - header >> "Content-Type: application/json; charset=UTF-8[\r][\n]"
[2020-02-21 14:00:33,132] [micro-integrator] DEBUG - header >> "User-Agent: Axis2[\r][\n]"
[2020-02-21 14:00:33,132] [micro-integrator] DEBUG - header >> "Host: <IP>:<Port>[\r][\n]"
[2020-02-21 14:00:33,132] [micro-integrator] DEBUG - header >> "[\r][\n]"
[2020-02-21 14:00:33,136] [micro-integrator] DEBUG - header << "HTTP/1.1 200 [\r][\n]"
[2020-02-21 14:00:33,136] [micro-integrator] DEBUG - header << "HTTP/1.1 200 [\r][\n]"
[2020-02-21 14:00:33,136] [micro-integrator] DEBUG - header << "Content-Type: application/json[\r][\n]"
[2020-02-21 14:00:33,136] [micro-integrator] DEBUG - header << "Content-Length: 25[\r][\n]"
[2020-02-21 14:00:33,137] [micro-integrator] DEBUG - header << "Date: Fri, 21 Feb 2020 08:30:32 GMT[\r][\n]"
[2020-02-21 14:00:33,137] [micro-integrator] DEBUG - header << "[\r][\n]"
[2020-02-21 14:00:33,137] [micro-integrator] DEBUG - content << "{"CompanyName":"test123"}"

Я знаю, что реализация REST Webservice должна не использовать полезную нагрузку для HTTP DELETE операция, однако я думаю, что ESB не должен не принимать решение отбросить полезную нагрузку, если базовый транспорт позволяет это. Кроме того, я знаю, что об этой проблеме сообщалось ранее (https://wso2.org/jira/browse/ESBJAVA-5060) и помечено как решенное в v6.2 WI2 EI. Однако я сталкиваюсь с этим в версии EI 6.4.

Есть ли решение, позволяющее использовать полезную нагрузку с помощью вызова HTTP DELETE с использованием Call Mediator в WSO2 EI v6.4?

1 Ответ

2 голосов
/ 21 февраля 2020

Похоже, исправление перешло к транспорту Passthrough (без блокировки), а не к блокирующему транспорту. Если вы удалите режим блокировки = "true", он должен работать.

...