WSO2 ESB XML定義語法(3)

2022-04-20 16:16:29 字數 1971 閱讀 7145

通過synapse調解的每條訊息都可以具有一組關聯的屬性。

synapse引擎和底層傳輸在處理的每條訊息上設定了許多屬性,使用者可以操縱這些屬性來修改訊息流的執行時行為。

此外,使用者可以在訊息上設定他自己的屬性,這在管理訊息流狀態和儲存特定於場景的變數時非常有用。

例如,在某些情況下,使用者可能希望在處理響應時訪問請求有效負載中的特定值。

屬性中介用於操縱訊息的屬性。

此介體可用於設定和刪除屬性值。

在設定屬性值時,輸入可以是由xpath表示式生成的常量或變數值。

配置屬性mediator的語法如下。

<

property

name

="string"

[action

=set|remove]

[type

="string"

] (value

="literal"

| expression

="xpath"

) [scope

=default|transport|axis2|axis2-client]

[pattern

="regex"

[group

="integer"

]]>

<

xml-element

/>?

property

>

'name'屬性指定需要設定或刪除的屬性的名稱,而'action'屬性指定需要由mediator執行的確切操作。

如果未指定,則操作將預設為「設定」。

設定屬性值時,必須指定「value」或「expression」屬性。

'value'屬性可用於將常量設定為屬性值,而'expression'屬性可用於指定xpath表示式(

如果指定了xpath表示式,synapse將對訊息進行評估,以確定需要分配給屬性的值。

synapse屬性是作用域。

因此,在使用此mediator時,使用者應指定將設定或刪除屬性的範圍。

如果未指定,則屬性介體將在「預設」範圍內工作。

只要事務(請求 - 響應)存在,此範圍中設定的屬性就會持續。

在範圍'axis2'上設定的屬性具有較短的壽命,它主要用於將引數傳遞給基礎axis2引擎。

「傳輸」範圍中設定的屬性將被視為傳輸標頭。

例如,如果需要使用傳出請求傳送名為「customheader」的http標頭,

<

property

name

="customheader"

value

="some value"

scope

="transport"

type

="type name"

/>

這將強制synapse傳送名為「customheader」的傳輸標頭以及傳出訊息。

property mediator還支援名為'axis2-client'的作用域。

在此範圍中設定的屬性將被視為axis2客戶端選項。

使用屬性儲存使用者或方案特定資訊時,建議始終使用「預設」範圍。

其他範圍不應用於自定義開發或中介工作,因為它們有可能改變基礎axis2引擎和傳輸框架的行為。

預設情況下,屬性介體將所有屬性值設定為字串。

可以通過指定「type」屬性來設定其他型別的屬性。

此屬性可以接受以下值之一。

型別名稱區分大小寫。

型別「om」可用於在訊息上下文中設定xml屬性值。

當在調解期間與屬性介體關聯的表示式求值為xml節點時,這將非常有用。

將type屬性設定為'om'後,生成的xml將在將其分配給屬性之前轉換為axiom omelement。

也可以使用屬性mediator將一些靜態xml內容設定為屬性值。

為此,請將靜態xml內容指定為「property」元素的子節點,而不是使用「value」屬性。

WSO2 ESB XML定義語法(2)

元素用於定義synapse 服務。通過基礎axis2引擎在指定的傳輸上建立和公開 服務,根據標準的axis2約定 即基於服務名稱 公開服務epr。請注意,目前axis2不允許為某些傳輸 如http s 上的服務設定自定義uri。服務可以通過所有已啟用的axis2傳輸 如http,https,jms,...

3 基礎語法(2)

if語句 a 天上掉錢 字串的真假 空字串即長度為0的字串 if a print 我就發財了 print 開葷 print 日子還得過呀 我就發財了 開葷日子還得過呀 if.else.語句 a 字串的真假 空字串即長度為0的字串 if a print 我就發財了 print 開葷 else prin...

Mysql語法 3 高階查詢2

1 可以用與檢測表是否已經建立 drop table if exists 表名 create table 表名 省略創表語句 2 exists 子查詢的語法 select.from 表名 where exists 子查詢 子查詢有返回結果 exists子查詢結果為true。子查詢無返回結果 exis...