2013-03-07 3 views
1

Мой текущий сценарий заключается в том, что у меня есть веб-сервис, открытый из службы данных, который возвращает мне адрес электронной почты пользователя, когда я даю ему имя пользователя. Теперь я хочу использовать эту веб-службу в ESB и получить идентификатор электронной почты из этой веб-службы в свойстве и показать ее на консоли с помощью посредника LOG. Что я должен делать сейчас и как?Как интегрировать сервер wso2 DSS и wso2 ESB

Извините за этот глупый вопрос, но я - самый новый член 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')"/> 

ответ

0

Поскольку у вас есть DATASERVICE реализуется, дать, что в качестве конечной точки 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> 

Вот ESB руководство пример о том, как создать прокси;

http://docs.wso2.org/wiki/display/ESB460/Proxy+Service+Samples

+0

У меня есть еще одна проблема. Я записал имя в свойстве «Получатель». Теперь я хочу, чтобы это перешло на фабрику полезных данных. Как это сделать? – Roy

+0

Мой код: <свойство xmlns: ns = "http: //org.apache.synapse/xsd" xmlns: ax2337 = "http: //email.samples/xsd" name = "Получатель" выражение = "// ax2337: получатель" /> Roy

+0

<р: GetEmailDetails "> получить-свойство ('Получатель') Roy

1

у просто использовать сервис ваш wso2dss tryit в этом запрос кода на стороне копии в payloadfactory InstEd из «?» Держать $ 1, $ 2 ..like это и передать аргумент ниже согласно ур выше порядок заказа играет важную роль для этого ответа. Я думаю, что это поможет для u

<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> 
Смежные вопросы