Ошибка на стороне сервера при выполнении запроса dss

#sql #postgresql #wso2esb #wso2dss

# #sql #postgresql #wso2-data-services-server #wso2-esb

Вопрос:

Я использую wso2dss 3.1.0 и wso2esb 4.7.0. Я хочу запустить select из esb.У меня есть запрос выбора записи в dss и dbs для этого, как :

  <query id="Capp_select_emercontactid" useConfig="default">
      <sql>select userid,mailid,phonenumber from muser where phonenumber = ? or mailid = ?</sql>
      <result element="Entries" rowName="Entry">
         <element column="userid" name="userid" xsdType="string"/>
         <element column="mailid" name="mailid" xsdType="string"/>
         <element column="phonenumber" name="phonenumber" xsdType="string"/>
      </result>
      <param name="phonenumber" ordinal="1" sqlType="STRING"/>
      <param name="mailid" ordinal="2" sqlType="STRING"/>
   </query>

 <operation disableStreaming="true" name="Capp_select_emercontactid_op">
      <call-query href="Capp_select_emercontactid">
         <with-param name="phonenumber" query-param="phonenumber"/>
         <with-param name="mailid" query-param="mailid"/>
      </call-query>
   </operation>
 

В dss все работает нормально.
Теперь я должен записать полезную нагрузку в esb, например :

                <payloadFactory>
                  <format>
                     <p:Capp_select_emercontactid_op xmlns:p="http://ws.wso2.org/dataservice">
                        <p:phonenumber>$1</p:phonenumber>
                        <p:mailid>$2</p:mailid>
                     </p:Capp_select_emercontactid_op>
                  </format>
                  <args>
                     <arg expression="get-property('phoneno1')" evaluator="xml"/>
                     <arg expression="get-property('mailid1')" evaluator="xml"/>
                  </args>
               </payloadFactory>
               <log level="full"/>
               <send>
                  <endpoint>
                     <address uri="http://localhost:9764/services/Capp_MuserDataservice/" format="soap11"/>
                  </endpoint>
               </send>
 

Когда я нажимаю на этот прокси, он не дает ответа..Почему так?Правильная ли конфигурация?Пожалуйста, дайте мне знать

Ответ №1:

Мне никогда не везло с использованием посредника отправки с DSS. Не могли бы вы рассмотреть возможность использования CalloutMediator вместо этого (это синхронный вызов отправки / ответа, поэтому вам может потребоваться использовать посредника ответа, если вы хотите получить немедленный ответ своему клиенту).

Это будет выглядеть примерно так:

     <callout xmlns="http://ws.apache.org/ns/synapse" action="Capp_select_emercontactid_op">
       <source xmlns:p="http://ws.wso2.org/dataservice" xpath="//p:Capp_select_emercontactid_op"/>
       <target xmlns:p="http://ws.wso2.org/dataservice" xpath="//p:Capp_select_emercontactid_op"/>
    </callout>