Как маршрутизировать методом вызова в прокси с WSO2?

Я хочу направить процесс в прокси по имени метода вызова. Я должен получить только допустимые методы от веб-сервисов. Например, webService1 имеет методы a (), b (), c (). У webService2 есть методы d (), e (). Я хочу получить только методы a (), b () и d () для клиента. Итак, я должен получить метод запроса, чтобы сделать это. Я могу сделать это с помощью свойства мыла действия, как это:

         <property name="MY_SOAP_ACTION"
                   expression="get-property('Action')"
                   scope="default"
                   type="STRING"/>
         <switch source="get-property('MY_SOAP_ACTION')">
            <case regex="add">
               <send>
                  <endpoint>
                     <address uri="http://localhost:1111/MockService1?wsdl"/>
                  </endpoint>
               </send>
            </case>
            <case regex="sgrsControlInspection">
               <send>
                  <endpoint>
                     <address uri="http://localhost:2222/MockService2?wsdl"/>
                  </endpoint>
               </send>
            </case>

Но веб-сервисы принадлежат к другому фонду, а методы не содержат аннотации мыльных действий. Так как же я могу сделать это без свойства action?

1 ответ

Действие SOAP возвращает метод, который вы хотите вызвать в конечной точке. Для этого не нужно указывать аннотации. То, как вы это сделали, кажется правильным. Также, пожалуйста, удалите часть "? Wsdl" из конечной точки. Ваша конфигурация конечной точки должна быть исправлена ​​следующим образом.

<address uri="http://localhost:1111/MockService1"/>

Другие конфигурации, кажется, хорошо.

Другие вопросы по тегам