如何集成wso2 DSS服务器和wso2 ESB

如何集成wso2 DSS服务器和wso2 ESB,wso2,wso2esb,wso2dss,Wso2,Wso2esb,Wso2dss,我当前的场景是,我有一个从data service公开的web服务,当我给它用户名时,它会返回用户的电子邮件地址。现在,我想在ESB中使用此web服务,并从属性中的此web服务获取电子邮件id,并使用日志中介器在控制台中显示它。 我现在应该做什么,怎么做 很抱歉这个愚蠢的问题,但我是wso2 esb的最新成员。所以请在这方面帮助我 Now ihave a response like: <brs:getRecipientKeyResponse xmlns:brs="http://brs.ca

我当前的场景是,我有一个从data service公开的web服务,当我给它用户名时,它会返回用户的电子邮件地址。现在,我想在ESB中使用此web服务,并从属性中的此web服务获取电子邮件id,并使用日志中介器在控制台中显示它。 我现在应该做什么,怎么做

很抱歉这个愚蠢的问题,但我是wso2 esb的最新成员。所以请在这方面帮助我

Now ihave a response like:
<brs:getRecipientKeyResponse xmlns:brs="http://brs.carbon.wso2.org">
 <brs:MailRecipient xsi:type="ax2338:MailRecipient" xmlns:ax2338="http://email.samples/xsd" xmlns:ax2337="http://email.samples/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ax2337:recipient>kevin</ax2337:recipient>
 </brs:MailRecipient>
</brs:getRecipientKeyResponse>

Ihave to get the recipient element from this response and put this in payload. My complete sequence for this is:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="receiveSeq">
   <log>
      <property name="getRecipient" value="------------Trying to get data Fom BRS Response----------------------------"/>
      <property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ax2337="http://email.samples/xsd" name="Recipient" expression="//ax2337:recipient"/>
   </log>
   <payloadFactory>
      <format>
         <p:GetEmailDetails xmlns:p="http://ws.wso2.org/dataservice">
            <xs:name xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:name>
         </p:GetEmailDetails>
      </format>
      <args>
         <arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:ax2337="http://email.samples/xsd" expression="//ax2337:recipient"/>
      </args>
   </payloadFactory>
   <log>
      <property xmlns:ns="http://org.apache.synapse/xsd" name="getName" expression="get-property('Recipient')"/>
   </log>
   <send receive="DBSeq">
      <endpoint key="emailServiceEP"/>
   </send>
</sequence>

<!--this part is not able to get data --->
 <property xmlns:ns="http://org.apache.synapse/xsd" name="getName" expression="get-property('Recipient')"/>
现在我有一个类似以下的响应:
凯文
我必须从这个响应中获取recipient元素,并将其放入有效负载中。我对此的完整顺序是:
$1

既然已经实现了数据服务,就将其作为端点url提供给可以在wso2esb中创建的代理。当您向代理发送请求时,您将收到数据服务的响应。只需使用“level=full”进行日志记录,您就会看到完整的响应。使用属性中介并使用xpath来选择所需的值。 示例配置:

 <proxy name="StockQuoteProxy">
        <target>
            <endpoint>
                <address uri="DS endpoint"/>
            </endpoint>
            <outSequence>
               <log level="full">
                  <property name="email" expression="xpath from the email attribute in the rseponse"/>
                </log>
                <send/>
            </outSequence>
        </target>

    </proxy>


既然已经实现了数据服务,就将其作为端点url提供给可以在wso2esb中创建的代理。当您向代理发送请求时,您将收到数据服务的响应。只需使用“level=full”进行日志记录,您就会看到完整的响应。使用属性中介并使用xpath来选择所需的值。 示例配置:

 <proxy name="StockQuoteProxy">
        <target>
            <endpoint>
                <address uri="DS endpoint"/>
            </endpoint>
            <outSequence>
               <log level="full">
                  <property name="email" expression="xpath from the email attribute in the rseponse"/>
                </log>
                <send/>
            </outSequence>
        </target>

    </proxy>


您只需使用您的wso2dss tryit服务,将请求端代码复制到payloadfactory中,而不是“?”保留$1,$2..像这样,并根据您的以上顺序传递下面的参数。顺序对此响应起着至关重要的作用。我认为这将对您有所帮助

<payloadFactory>
            <format>
               <p:insert_emp_operation xmlns:p="http://ws.wso2.org/dataservice">
                  <xs:eno xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:eno>
                  <xs:ename xmlns:xs="http://ws.wso2.org/dataservice">$2</xs:ename>
                  <xs:esal xmlns:xs="http://ws.wso2.org/dataservice">$3</xs:esal>
               </p:insert_emp_operation>
            </format>
            <args>
               <arg expression="get-property('eno')"/>
               <arg expression="get-property('ename')"/>
               <arg expression="get-property('esal')"/>
            </args>
         </payloadFactory>
         <send receive="Error_Seq">
            <endpoint>
               <address uri="http://localhost:9764/services/emp_DataService/" format="soap11"/>
            </endpoint>
         </send>

$1
$2
$3

您只需使用您的wso2dss tryit服务,将请求端代码复制到payloadfactory中,而不是“?”保留$1,$2..像这样,并根据您的上述顺序传递下面的参数。顺序对此响应起着至关重要的作用。我认为这将对您有所帮助

<payloadFactory>
            <format>
               <p:insert_emp_operation xmlns:p="http://ws.wso2.org/dataservice">
                  <xs:eno xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:eno>
                  <xs:ename xmlns:xs="http://ws.wso2.org/dataservice">$2</xs:ename>
                  <xs:esal xmlns:xs="http://ws.wso2.org/dataservice">$3</xs:esal>
               </p:insert_emp_operation>
            </format>
            <args>
               <arg expression="get-property('eno')"/>
               <arg expression="get-property('ename')"/>
               <arg expression="get-property('esal')"/>
            </args>
         </payloadFactory>
         <send receive="Error_Seq">
            <endpoint>
               <address uri="http://localhost:9764/services/emp_DataService/" format="soap11"/>
            </endpoint>
         </send>

$1
$2
$3

我还有一个问题。我在一个名为Recipient的属性中捕获了一个名称。现在我想把这个传给有效载荷工厂。如何做到这一点?我的代码是:它是这样的$在args中,您需要按顺序增加参数,比如,$1,$2..i还有一个问题。我在一个名为Recipient的属性中捕获了一个名称。现在我想把这个传给有效载荷工厂。如何做到这一点?我的代码是:它是这样的$在args中,您需要按顺序增加参数,如,$1,$2。。