I was familiar with tcpmon from Apache Axis distribution. But I had no idea that there was a independent Apache TCPMon. The primary difference between the two seems to be the built in sender screen that allows you to enter a SOAP request, submit the request to a web service, and view the response.
If you work with web services in Java, then it is definitely worth the download. The screen shot below shows the same web service request and response used in my Java Web Services Message Client – the request on top and the response below.
I’m sure that Gene will be pleased to see that Stan Smiths are back in style. Although he may not agree with the following fashion advice:
“They need to be clean, It’s a good look, a right-out-of-the-box-clean pair of white sneakers, and it’s the only kind you can wear with dressier clothes, nice jeans or even a suit.”
Most of the Java web services examples on the web use an RPC-style interface. That’s fine when you’re calling a web service implemented in Java. But web services being what they are, you’ll eventually find yourself invoking a message-style web service whose WSDL gives wsdl2java fits.
When that time comes, you can either roll your own code rather than use wsdl2java or you can go with the flow with a message-style interface. I think that you’ll find it easier to go with the message-style interface. And to make it even easier, here is a simple message-style client to get you started.
This client reads an input document from standard input, invokes a web service, and then prints the web service response. The results shown here use Java 1.4.2_11 and Axis 1.3.
publicstaticvoidmain( String[] args ) throws Exception { String endpoint = "http://stephan-desktop/axis/services/echo"; /* * If there is a command line argument, * then use it as the web service endpoint */ if ( args.length > 0 ) { endpoint = args[0]; } /* * Read input */ String document = streamToString( System.in ); System.out.println( document ); System.out.println( "Invoking " + endpoint + "\n" ); /* * Pass to web service */ Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationStyle( org.apache.axis.constants.Style.MESSAGE ); SOAPEnvelope envelope = call.invoke( new Message(document) ); /* * Print the Web Service return */ System.out.println( envelope.getBody().toString() ); }
/** * Utility to read textual data from in InputStream to a String */ publicstatic String streamToString( java.io.InputStream is ) throws java.io.IOException { java.io.InputStreamReader ir = new java.io.InputStreamReader(is); java.io.BufferedReader in = new java.io.BufferedReader(ir);
StringBuffer buffer = new StringBuffer(); { String line = null; while( (line=in.readLine()) != null ) { buffer.append( line ); buffer.append( '\n' ); } } return buffer.toString(); } }
And here is the client in action, calling the echoString operation of the echo web service example included in the Axis distribution. The actual response body is a single line, I have taken the liberty of formatting the response for easier reading.
The Colts owned the 2nd and 3rd quarters on the field, even if the score didn’t show it. So even though the game really was in doubt until Kelvin Hayden’s interception return for a TD, it didn’t seem like it was in doubt.
And the ads didn’t wow me either. They were ok, but nothing really grabbed me. And the Clydesdales never made their appearance.
Time for another Super Bowl prediction. I know that defense wins championships. I know that my personal tendency is to over value offense over defense. But I think that this is the year that Peyton Manning breaks through.
I hope that I’m wrong. I have a feeling that a Colts win today will take the Colts to the next level. And that it will be tough for anyone in the AFC to get past both the Colts and the Patriots to the Super Bowl.
My page rank took a big hit when I moved my home url from the blog.ideoplex.com sub-domain to the main ideoplex.com domain back in June. I was beginning to think that it wasn’t going to come back.
I’m sure that it was just a coincidence, but after setting my preferred domain to ideoplex.com in Google’s Webmaster Tools my home page rank rose from 2 to 5. Not quite the 6 that I had before the move, but I was blogging much more frequently back then.
Coincidences aside, I’ve always known that most of my readers come for my Java Tutorials as a result of a Google search. But I’ve never really understood my search terms until now:
Thanks go to David Hornik for his post on Google Webmaster Tools
I made my first Wikipedia edit about half a year ago - an update of the link to my Ant tutorials from the old Radio Userland location to the current Textpattern location. Since then, I’ve adopted a half dozen Wikipedia pages and made around 70 edits.
Wikipedia is strangely seductive. I started with a minor correction. Then it was the weeding out of inappropriate external links and minor text clarifications. And now I have the creation of a new page under my belt.
I think that makes Wikipedia the latest in a long list of things that I didn’t believe in only to become a solid supporter.
I happened upon Shattered Glass while cable grazing the other day. I had seen it before, and it was still good the second time around. Hayden Christensen never worked for me as Anakin Skywalker; but I liked him as the endearing, but cloying, Stephen Glass.
One of the takeaways from the movie is just how easy it is to subvert the fact checking process. Glass fabricated the background to many, perhaps most, of his published stories. And the fact checking process didn’t find a thing.
It also illustrated our willingness to trust our own. How easily we look away and accept favorable spin. We believe because we want to believe.
Which leads me to our title: Who will guard the guardians? It is far too common for insiders to condone the failings and foibles of their own. Whether it is truly independent auditors for business or the separation of powers in government, we need outsiders as a check on the power of the insiders.
I filed a customer support case with a software vendor today. I don’t want to pick on anyone in particular, but I’ve had similar issues before. So here we go.
I’m very happy that you have memorized your telephone number and extension. But would you please slow down when you leave it on my voice mail.
It’s good to know that I need to supply more information. But it would be so much better to know exactly what information you need. If it is too complex for a voice mail, then you could type it into my case log.
Thanks for letting me know that you’re out of the office tomorrow. But don’t you think that makes the previous point that much more pertinent?
At the time, the 8300HD was our only option for an HD DVR. And if we had never used a Tivo, then we might have been impressed with the 8300HD. But we have, and we aren’t. Because the 8300HD user interface is lame.
The 8300HD UI allows you to watch one show while viewing your recorded programs, limiting the list of recorded programs to only 5 lines. The combination of a 5 line display, no folders and temperamental scrolling makes the selection of a show to watch a real adventure. And the recording logic isn’t smart enough to avoid recording multiple instances of the same episode.
All in all, I would have to say that the best feature of the 8300HD is that it is rented not owned. Because we are replacing it with a Series 3 Tivo as soon as I’m confident that Cablevision is supporting cable cards.