Как изменить WSDL и добавить входные переменные в Proxy Service? - PullRequest
0 голосов
/ 08 апреля 2019

Я создал прокси-сервис в WSO EI 6.4.0, который отправляет электронную почту.В потоке я использую свойства: AttachmentFile, transport.mail.bodyWhenAttached, senderAddress и Subject.Как создать собственный wsdl с входными параметрами sender_address, subject, mail_text, attachment_file.или какое другое решение вы можете использовать?Я хочу вызвать этот прокси-сервер через API и отправить параметры.

<inSequence xmlns="http://ws.apache.org/ns/synapse">
    <property name="transport.mail.Format" scope="axis2" type="STRING" value="Attachment"/>
    <property name="AttachmentFile" scope="axis2" type="STRING" value="attachment.csv"/>
    <property name="ContentType" scope="axis2" type="STRING" value="text/html"/>
    <property name="messageType" scope="axis2" type="STRING" value="text/html"/>
    <property expression="Some body text" name="transport.mail.bodyWhenAttached"
        scope="axis2" type="STRING"/>
    <property name="senderAddress" scope="default" type="STRING" value="test@test.com"/>
    <property name="Subject" scope="transport" type="STRING" value="WSO Email Test"/>
    <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
    <property name="FORCE_SC_ACCEPTED" scope="axis2" type="STRING" value="true"/>
    <log level="full"/>
    <header
        expression="fn:concat('mailto:', get-property('senderAddress'))"
        name="To" scope="default"/>
    <call>
        <endpoint>
            <default/>
        </endpoint>
    </call>
</inSequence>

1 Ответ

0 голосов
/ 12 апреля 2019

Сохраните приведенный ниже файл с именем sendEmailProxy.xml в папке

// хранилище / развертывание / сервер / synapse-configs / default / proxy-services

    <?xml version="1.0" encoding="UTF-8"?>
        <proxy xmlns="http://ws.apache.org/ns/synapse"
               name="sendEmailProxy"
               startOnLoad="true"
               statistics="disable"
               trace="disable"
               transports="http,https">
           <target>
              <inSequence>
                 <property name="transport.mail.Format"
                           scope="axis2"
                           type="STRING"
                           value="Attachment"/>
                 <property name="AttachmentFile"
                           scope="axis2"
                           type="STRING"
                           value="attachment.csv"/>
                 <property name="ContentType"
                           scope="axis2"
                           type="STRING"
                           value="text/html"/>
                 <property name="messageType"
                           scope="axis2"
                           type="STRING"
                           value="text/html"/>
                 <property name="senderAddress"
                           scope="default"
                           type="STRING"
                           value="test@test.com"/>
                 <property name="Subject"
                           scope="transport"
                           type="STRING"
                           value="WSO Email Test"/>
                 <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
                 <property name="FORCE_SC_ACCEPTED"
                           scope="axis2"
                           type="STRING"
                           value="true"/>
                 <log level="full"/>
                 <header expression="fn:concat('mailto:', get-property('senderAddress'))"
                         name="To"
                         scope="default"/>
                 <call>
                    <endpoint>
                       <default/>
                    </endpoint>
                 </call>
                 <respond/>
              </inSequence>
           </target>
<parameter name="useOriginalwsdl">true</parameter>
           <description/>
        </proxy>

Как только он будет сохранен, запустите экземпляр wso2 EI / ESB, войдите в него, затем нажмите на сервис, который находится в левой части экрана ниже services, вы найдете прокси, у вас будет две опции wsdl1.1 wsdl2.0щелкните по тому, что вы предпочитаете, это даст вам файл wsdl для вашего прокси

Если у вас уже есть пользовательский wsdl и вы хотите, чтобы wso2 подобрал этот wsdl, вам нужно добавить следующий параметр

<parameter name="useOriginalwsdl">true</parameter>

Это позволит принять ваш пользовательский wsdl и wso2 не будет генерировать свой собственный wsdl

...