WSO2 API Manager Tool: невозможно преобразовать JSONtoSOAP, а затем SOAPtoJSON для обмена данными между фиктивным бэкэндом и API - PullRequest
1 голос
/ 19 марта 2019

В соответствии с инструкциями WSO2 Документация: https://docs.wso2.com/display/AM260/Convert+a+JSON+Message+to+SOAP+and+SOAP+to+JSON

Ожидаемый ответ:

Я пару раз его пересматривал, но получаю «400: ошибка неверного запроса»

мой локон и ошибка

EDIT¹: после запуска тестов я обнаружил, что проблема заключается только в преобразовании SOAPtoJSON. Когда я выполняю POST без последовательности OUT (SOAPtoJSON), я получаю XML-ответ в точности так, как показано здесь

Вот мой JSONtoSOAP.xml:

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="JSONtoSOAP" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <payloadFactory media-type="xml">
        <format>
            <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <soap12:Body>
                    <CheckPhoneNumber xmlns="http://ws.cdyne.com/PhoneVerify/query">
                        <PhoneNumber>$1</PhoneNumber>
                        <LicenseKey>$2</LicenseKey>
                    </CheckPhoneNumber>
                </soap12:Body>
            </soap12:Envelope>
        </format>
        <args>
            <arg evaluator="xml" expression="//request/PhoneNumber" literal="true"/>
            <arg evaluator="xml" expression="//request/LicenseKey" literal="true"/>
        </args>
    </payloadFactory>
    <property name="messageType" scope="axis2" type="STRING" value="application/soap+xml"/>
</sequence>

Вот мой SOAPtoJSON.xml:

    <?xml version="1.0" encoding="UTF-8"?>
<sequence name="SOAPtoJSON" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <log level="custom" separator=",">
        <property name="TRACE" value="Global Mediation Extension"/>
    </log>
    <payloadFactory media-type="xml">
        <format>
            <CheckPhoneNumber xmlns="http://ws.cdyne.com/PhoneVerify/query">
                <PhoneNumber>$1</PhoneNumber>
                <LicenseKey>$2</LicenseKey>
            </CheckPhoneNumber>
        </format>
        <args>
            <arg evaluator="xml" expression="//request/PhoneNumber"/>
            <arg evaluator="xml" expression="//request/LicenseKey"/>
        </args>
    </payloadFactory>
    <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
</sequence>

Я действительно новичок в этой технологии. И я просто следовал инструкциям из документации Возможно, это была просто глупая ошибка (хотя я несколько раз ее пересматривал)

Может, у кого-то возникла такая же проблема, и он может мне помочь. Заранее спасибо.

1 Ответ

1 голос
/ 19 марта 2019

Вот новая функция, которая генерирует интерфейс REST для вашей службы SOAP.Попробуй это.Он поддерживает конвертацию SOAP-REST автоматически.

https://docs.wso2.com/display/AM260/Generate+REST+APIs+from+SOAP+Backends

...