As I posted before I am currently working with the WSO2 ESB. To get a good understanding of this ESB I have been walking through the samples (haven’t finished all of them yet). Example 12 is about one-way messaging with the ESB and makes use the TCP Monitor to make it visible. I have described before how to setup a similar tool called ‘TcpTunnelGUI’ but actually I prefer the TCP Monitor. To use the tool see the manual here or here. By the way, the tool is available with the WSO2 ESB installation so you don’t have to download it and install it. Simply go to the ‘$CARBON_HOME/bin’ directory and give the command:
To see the example 12 in action with Tcp Monitor do the following:
- Start the WSO2 ESB
This example uses the ESB setup that is similar as the one for example 1 so start the ESB by navigating to the ‘$CARBON_HOME/bin’ directory in a terminal and enter the following command:
./wso2esb-samples.sh -sn 1
- Start the Apache Axis server
Next step is to start the Axis server where the SimpleStockQuote is deployed. To do this open a new terminal and navigate to ‘$CARBON_HOME/samples/axis2Server’ directory. Enter the command
- Start the TcpMonitor
- Configure the TcpMonitor
We are going to listen to port 8281 and forward the incoming traffic to 8280 (that is where our ESB is running it’s proxy service).
Here is how to set this up in the Tcp Monitor:
After clicking the ‘Add’ button you see the TcpMonitor waiting for a connection:
So let’s send a message through it.
- Run the Axis client
I made a small change to the statement as shown in the example page. Open a new terminal and run the following command from the directory ‘$CARBON_HOME/samples/axis2Client’:
ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dprxurl=http://localhost:8281/ -Dmode=placeorder
- Check the results
Here is the request sent by the Axis client:
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> <soapenv:Header xmlns:wsa='http://www.w3.org/2005/08/addressing'> <wsa:To>http://localhost:9000/services/SimpleStockQuoteService</wsa:To> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address> </wsa:ReplyTo> <wsa:MessageID>urn:uuid:44ba7c6b-1836-4a62-8e40-814813a64022</wsa:MessageID> <wsa:Action>urn:placeOrder</wsa:Action> </soapenv:Header> <soapenv:Body> <m0:placeOrder xmlns:m0='http://services.samples'> <m0:order> <m0:price>154.76332953114107</m0:price> <m0:quantity>8769</m0:quantity> <m0:symbol>IBM</m0:symbol> </m0:order> </m0:placeOrder> </soapenv:Body> </soapenv:Envelope>
The important thing to notice in the request is the following element in the header:
<wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address> </wsa:ReplyTo>
With this element in the header we tell the we service we don’t expect a response. So what we get as a response is just the 202 response code as we can see in the TCP Monitor:
HTTP/1.1 202 Accepted Content-Type: text/xml; charset=UTF-8 Server: Synapse-HttpComponents-NIO Date: Thu, 14 Mar 2013 20:30:19 GMT Transfer-Encoding: chunked 0
That completes this example, only a few more to go!
Java Platform, Enterprise Edition is a widely used platform for enterprise server programming in the Java programming language.
This book covers exciting recipes on securing, tuning and extending enterprise applications using a Java EE 6 implementation.The book starts with the essential changes in Java EE 6. Then they will dive into the implementation of some of the new features of the JPA 2.0 specification, and look at implementing auditing for relational data stores.They will then look into how they can enable security for their software system using Java EE built-in features as well as using the well-known Spring Security framework. They will then look at recipes on testing various Java EE technologies including JPA, EJB, JSF, and Web services.Next they will explore various ways to extend a Java EE environment with the use of additional dynamic languages as well as frameworks.At the end of the book, they will cover managing enterprise application deployment and configuration, and recipes that will help you debug problems and enhance the performance of your applications.