Callout вызывает другую конечную точку - PullRequest
0 голосов
/ 28 октября 2019

Привет, я новичок в wso2, и у меня есть 2 API, я хочу вызвать второй, используя первый, но URL, который использует посредник обратного вызова, отличается от того, который я настроил, что приводит к ошибке HTTPSender Unableотправить ViaGet на URL [http://192.168.20.1:8280/loginAPI/login/Nurse]

Код ниже

Любая помощь будет приветствоваться

<api context="/Staff" name="StaffAPI" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET" url-mapping="/Nurse">
    <inSequence>
        <log level="full"/>
        <callout description="" initAxis2ClientOptions="false" serviceURL="http://192.168.20.1:8280/loginAPI/login">
            <source type="envelope"/>
            <target key="response"/>
        </callout>
        <log level="custom">
            <property expression="get-property('response')" name="response"/>
        </log>
        <send>
            <endpoint key="NurseEP"/>
        </send>
    </inSequence>
    <outSequence>
        <send/>
    </outSequence>
    <faultSequence/>
</resource>

<api context="/loginAPI" name="LoginAPI" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET" uri-template="/login">
    <inSequence>
        <payloadFactory media-type="json">
            <format>{&#xd;
                "userName": "xxx",&#xd;
                "password": "xxx",&#xd;
                "rememberMe": true,&#xd;
                "fireBaseToken": "string"&#xd;
            }</format>
            <args/>
        </payloadFactory>
        <cache collector="false" hashGenerator="org.wso2.carbon.mediator.cache.digest.DOMHASHGenerator" id="Token" maxMessageSize="2000" scope="per-host" timeout="5000">
            <onCacheHit/>
            <implementation maxSize="1000" type="memory"/>
        </cache>
        <send>
            <endpoint key="LoginEP"/>
        </send>
    </inSequence>
    <outSequence>
        <cache collector="true" scope="per-host"/>
        <send/>
    </outSequence>
    <faultSequence/>
</resource>

Конечная точка http://192.168.20.1:8280/loginAPI/login при вызове почтальона действительна

1 Ответ

0 голосов
/ 28 октября 2019

Появляется, что к вашему serviceURL добавляется суффиксное сопоставление api, попробуйте добавить его перед вызовом (его следует использовать в случае посредника отправки, не обязательно для вызова, но похоже, что это то же самое поведение):

<property name="REST_URL_POSTFIX" scope="axis2" action="remove"/>
...