#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>