I've spent the last two days learning about web services. Spring and Axis2 both seem to have nearly identical approaches to it, just with differences in minor details. I like Axis2 better than Spring for web services that aren't very complicated because you can just write up a POJO, archive it and drop it into the Axis2 engine. It's not like Spring where you have to customize web.xml, create a new Spring context for the service, create a XSD schema, create an Endpoint object, and then pray that you didn't mess up some minor detail of the configuration.
The Apache group is really onto something with this simple approach. JAX-WS is very similar in how it uses annotations to mark methods of POJOs as web service calls. It seems like people are really beginning to wise up and realize that it is too damned involved to create things like web services in Java.
In college, for an assignment, I created a few JSPs which did essentially what these web services do. All they did was take the input passed to them, and return a body of XML to the calling client. Java is going to need to keep simplifying to the point where it is as easy to do common things in Java as it is in other languages. Even with .NET, all a typical web service is is a modified ASP.NET web page that generated the web service when called.
And in the end, all web services really are are glorified CGI scripts that print "Content-type: text/xml\n\n\n" to the client, while spewing out XML output.
The Apache group is really onto something with this simple approach. JAX-WS is very similar in how it uses annotations to mark methods of POJOs as web service calls. It seems like people are really beginning to wise up and realize that it is too damned involved to create things like web services in Java.
In college, for an assignment, I created a few JSPs which did essentially what these web services do. All they did was take the input passed to them, and return a body of XML to the calling client. Java is going to need to keep simplifying to the point where it is as easy to do common things in Java as it is in other languages. Even with .NET, all a typical web service is is a modified ASP.NET web page that generated the web service when called.
And in the end, all web services really are are glorified CGI scripts that print "Content-type: text/xml\n\n\n" to the client, while spewing out XML output.
When I start talking to a fellow developer about web services, he always says, "You mean CGI?" While I disagree with his oversimplification, SOAP is just a protocol to formalize what can be done with CGI scripts meant to be consumed by programs instead of end users.