2012-01-11 70 views
0

我遇到了一個問題,首先,我製作了一個服務,它將爲結果提供特定的端點。在獲得特定的端點後,我想調用該服務。但我不知道該怎麼做。我嘗試模板端點,但仍然不能在Mediator中使用。我看過以下文檔:http://wso2.org/project/esb/java/4.0.0/docs/templates.html,它說:「使用端點模板是ESB中使用的端點配置的一種通用形式。與序列模板不同,端點模板始終使用'$'前綴值進行參數化(即: - NOT xpath表達式)」WSO2中的動態端點

這裏是我的模板代碼:

<template xmlns="http://ws.apache.org/ns/synapse" name="TemplateEndPoint"> 
    <endpoint name="$name"> 
     <address uri="$uri"> 
     <suspendOnFailure> 
      <progressionFactor>1.0</progressionFactor> 
     </suspendOnFailure> 
     <markForSuspension> 
      <retriesBeforeSuspension>0</retriesBeforeSuspension> 
      <retryDelay>0</retryDelay> 
     </markForSuspension> 
     </address> 
    </endpoint> 
</template> 

這裏是代理代碼:

<send> 
    <endpoint template="TemplateEndPoint"> 
    <parameter name="uri" value="http://localhost:8080/axis2/services/TaskService.TaskServiceHttpEndpoint/getTask" /> 
    <parameter name="name" value="Testing" /> 
    </endpoint> 
</send> 

當我硬編碼的代理,它接受代碼,但是當我回頭看設計/源視圖,它會回到。我怎麼解決這個問題?

回答

1

我認爲你正在尋找這個。您可以設置To參數與頭中介

<頭名= 「要」 表達= 「FN:CONCAT( '的mailto:',獲得屬性( '電子郵件'))」/ >

你可以看看this link以及

0

當您第一次調用發送端點詳細信息的服務時,請使用xslt mediator/enrich mediator來選擇該端點詳細信息。然後使用標頭介體並將「To 「該端點的值

0

似乎只設置To標題w如果服務使用期望的傳輸的收聽者以及發送者,則請求。因此,如果您嘗試在僅監聽http的服務上嘗試執行動態mailto端點,則它會嘗試通過http傳輸路由郵件,但不起作用。

作爲解決這個問題的方法,我將終端地址設置爲服務器電子郵件帳戶的地址(這也提供了發送的電子郵件的審計跟蹤),並在傳輸級別設置了CC或BCC屬性。例如:

<property name="mailAddress" expression="/xpath/to/email/address" scope="default"/> 

然後

<property name="CC" expression="get-property('mailAddress')" scope="transport" /> 

<property name="BCC" expression="get-property('mailAddress')" scope="transport" /> 

,你可以直接搶在CC屬性的電子郵件地址,但做這種方式可以讓您的地址進行驗證屬性。