...
Info |
---|
The Switch and Send mediators of the ESB profile of WSO2 EI simulate the Message Router EIP. The Switch Mediator depicts the Router and observes the content of the message, while the Send Mediator sends the message to a selected recipient. Each case defined in the Switch mediator is used to decide the routing of the message to the appropriate service. fooOutQueue and barOutQueue act as two separate services. |
Image RemovedImage Added
Expand |
---|
title | The Synapse configurations of the artifacts |
---|
|
Tip |
---|
When you unzip the ZIP file you download below in Step 6 when simulating the sample scenario, you can find the below configurations in the <UNZIPPED_FILE>/src/main/synapse-config directory. For more information about these artifacts, go to WSO2 EI Documentation. |
Localtabgroup |
---|
Localtab |
---|
| Code Block |
---|
| <?xml version="1.0" encoding="UTF-8"?>
<proxy name="message-router-proxy" startOnLoad="true" transports="http https"
xmlns="http://ws.apache.org/ns/synapse">
<target>
<inSequence>
<!-- Will call the message router -->
<sequence key="MessageRoute"/>
</inSequence>
<outSequence>
<respond/>
</outSequence>
<faultSequence/>
</target>
</proxy> |
|
Localtab |
---|
| Code Block |
---|
| <?xml version="1.0" encoding="UTF-8"?>
<sequence name="MessageRoute" trace="disable"
xmlns="http://ws.apache.org/ns/synapse">
<switch source="//m0:getQuote/m0:request/m0:symbol"
xmlns:m0="http://services.samples">
<case regex="foo">
<send>
<endpoint>
<address uri="http://localhost:9000/services/SimpleStockQuoteService?wsdl"/>
</endpoint>
</send>
</case>
<case regex="bar">
<send>
<endpoint>
<address uri="http://localhost:9001/services/SimpleStockQuoteService?wsdl"/>
</endpoint>
</send>
</case>
<default>
<property expression="fn:concat('Normal Stock - ', //m0:getQuote/m0:request/m0:symbol)" name="symbol" scope="default" type="STRING"/>
</default>
</switch>
</sequence> |
|
|
|
...
Gliffy |
---|
name | Message-Router-Diagram |
---|
pagePin | 1112 |
---|
|
Analyzing the output
After you execute the above command through the client, observe that the request is transferred to to the foo inventory service
. Notice You view the following processed server log in the Stock Quote
Client consolethe Stock Quote Client Console:
Standard :: Stock price = $77.86763451813164
Change
Image Added
Also, you view the following log printed in the MyServer1
Axis2 Server Console open in the HTTP port 9000.
Image Added
Now, change the -Dsymbol
parameter to bar
and run the folloiwng following command:
Code Block |
---|
|
ant stockquote -Dtrpurl=http://localhost:8280/services/message-router-proxy |
...
NowThen, the request goes to to the bar
inventory service. Notice You view the following processed server log in the Stock Quote
Client console:
...
the Stock Quote Client Console:
Image Added
Also, you view the following log printed in the MyServer2
Axis2 Server Console open in the HTTP port 9001.
Image Added