日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

apache synapse使用(1)

發(fā)布時間:2025/6/15 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 apache synapse使用(1) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.Synapse介紹

Synapse 是一個簡單的 XML 和 Web 服務(wù)管理與集成代理,可用于構(gòu)成 SOA 和企業(yè)服務(wù)總線(ESB)的基礎(chǔ)。Synapse是 Web 服務(wù)項目中一項成熟的 Apache 活動,并且是非常成功的 Apache Axis2 項目的一個分支。它提供了中介、管理、以及在各種不同的應(yīng)用程序之間轉(zhuǎn)換 XML 消息的能力

看看官方給出的架構(gòu)圖

二.官方示例

1,環(huán)境準(zhǔn)備

  • A Java 2 SE - JDK or JRE of version 1.5.x or higher (JDK 1.6.0_21 recommended)
  • Apache Ant http://ant.apache.org

2,日志記錄示例

在這個示例中,只是將執(zhí)行過的調(diào)用執(zhí)行日志記錄功能

首先下載synapse: http://synapse.apache.org/download.html

解壓,下文中提到的<synapse-home>就是解壓后的根目錄,進(jìn)入到<synapse-home>/samples/axis2Server/src/SimpleStockQuoteService

運行ant

執(zhí)行成功之后,到<synapse-home>/samples/axis2Server目錄啟動服務(wù)

axis2Server.bat

啟動

啟動Synapse

到目錄<synapse-home>/repository/conf/sample目錄下,看一下文件synapse_sample_0.xml

<!-- Introduction to Synapse --> <definitions xmlns="http://ws.apache.org/ns/synapse"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://ws.apache.org/ns/synapse http://synapse.apache.org/ns/2010/04/configuration/synapse_config.xsd"><sequence name="main"><!-- log all attributes of messages passing through --><log level="full"/><!-- Send the message to implicit destination --><send/></sequence></definitions>

?定義記錄所有通過的日志消息

然后到<synapse-home>/bin目錄下,啟動Synapse

執(zhí)行 synapse.bat -sample 0

如上圖所示表示啟動成功

運行客戶端

進(jìn)行<synapse-home>/samples/axis2Client目錄

運行 ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280 -Dmode=quote -Dsymbol=IBM

查看發(fā)布的結(jié)果

http://localhost:9000/services/SimpleStockQuoteService

運行其它的示例程序如上。

使用代理服務(wù)發(fā)布

<!-- Introduction to proxy services --> <definitions xmlns="http://ws.apache.org/ns/synapse"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://ws.apache.org/ns/synapse http://synapse.apache.org/ns/2010/04/configuration/synapse_config.xsd"><proxy name="StockQuoteProxy"><target><endpoint><address uri="http://localhost:9000/services/SimpleStockQuoteService"/></endpoint><outSequence><send/></outSequence></target><publishWSDL uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/></proxy></definitions>

?啟動synapse服務(wù)

synapse.bat -sample 150

運行客戶端

ant stockquote -Dtrpurl=http://localhost:8280/services/StockQuoteProxy -Dmode=quote -Dsymbol=IBM

控制臺顯示如下信息:

Standard :: Stock price = $165.32687331383468

3,改變?nèi)罩炯墑e

假如你在調(diào)試模式下運行,那么可以修改對應(yīng)的配置文件的日志級別

可以在<synapse-home>/lib目錄下log4j.properties,修改

"log4j.category.org.apache.synapse=INFO" as "log4j.category.org.apache.synapse=DEBUG"

就可以看到調(diào)試的信息

?

三.消息中介示例

1,簡單介紹

在這個示例中

<!-- Introduction to Synapse --> <definitions xmlns="http://ws.apache.org/ns/synapse"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://ws.apache.org/ns/synapse http://synapse.apache.org/ns/2010/04/configuration/synapse_config.xsd"><sequence name="main"><!-- log all attributes of messages passing through --><log level="full"/><!-- Send the message to implicit destination --><send/></sequence></definitions>

?使用示例有兩種模式在客戶端調(diào)用

1)智能客戶端模式:ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/

2)使用synapse作為http代理

執(zhí)行成功行服務(wù)端能看到

Thu Nov 03 16:47:22 CST 2011 samples.services.SimpleStockQuoteService :: Generat
ing quote for : IBM

客戶端能看到

?Standard :: Stock price = $80.1611906447455

2,執(zhí)行代理客戶端

<!-- Simple content based routing (CBR) of messages --> <definitions xmlns="http://ws.apache.org/ns/synapse"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://ws.apache.org/ns/synapse http://synapse.apache.org/ns/2010/04/configuration/synapse_config.xsd"><sequence name="main"><!-- filtering of messages with XPath and regex matches --><filter source="get-property('To')" regex=".*/StockQuote.*"><then><send><endpoint><address uri="http://localhost:9000/services/SimpleStockQuoteService"/></endpoint></send><drop/></then></filter><send/></sequence></definitions>

?執(zhí)行結(jié)果同上

可以在9000端口上看到執(zhí)行的結(jié)果

打開 http://localhost:9000/services/SimpleStockQuoteService?wsdl 可以看到接口的定義

3,使用CBR選擇屬性

配置文件如下:

<!-- CBR with the Switch-case mediator, using message properties --> <definitions xmlns="http://ws.apache.org/ns/synapse"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://ws.apache.org/ns/synapse http://synapse.apache.org/ns/2010/04/configuration/synapse_config.xsd"><sequence name="main"><switch source="//m0:getQuote/m0:request/m0:symbol" xmlns:m0="http://services.samples"><case regex="IBM"><!-- the property mediator sets a local property on the *current* message --><property name="symbol" value="Great stock - IBM"/></case><case regex="MSFT"><property name="symbol" value="Are you sure? - MSFT"/></case><default><!-- it is possible to assign the result of an XPath expression as well --><property name="symbol" expression="fn:concat('Normal Stock - ', //m0:getQuote/m0:request/m0:symbol)"/></default></switch><log level="custom"><!-- the get-property() XPath extension function allows the lookup of local message propertiesas well as properties from the Axis2 or Transport contexts (i.e. transport headers) --><property name="symbol" expression="get-property('symbol')"/><!-- the get-property() function supports the implicit message headers To/From/Action/FaultTo/ReplyTo --><property name="epr" expression="get-property('To')"/></log><!-- Send the messages where they are destined to (i.e. the 'To' EPR of the message) --><send/></sequence></definitions>

?服務(wù)端執(zhí)行synapse.bat -sample 2

客戶端執(zhí)行

ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/ -Dsymbol=IBM
或者執(zhí)行 ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/ -Dsymbol=MSFT

后面的例子在下面的文章中依次列出


四.屬性說明

1,definitions

Synapse配置的根元素,有默認(rèn)的命名空間

http://ws.apache.org/ns/synapse

2,sequence

這個是所有消息中介的入口點,有一個非常重要的屬性

name="main"

這個是所有程序的入口點,相當(dāng)于java中的main函數(shù)

3,log

指定日志配置用的級別

4,in

標(biāo)明執(zhí)行請求要執(zhí)行哪些中介

?

?



總結(jié)

以上是生活随笔為你收集整理的apache synapse使用(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。