I have decent J2EE knowledge. I want to learn webservices. I'm seeing a couple of options, Java Web Services Developer pack, Axis. Which one should i adopt for my learning? Where should i start? What's the difference b/w the two?
Axis is just a web app, so it's easy to install - just drop it into a servlet container. It comes with examples, and there are a bunch of articles out there (JavaWorld, DeveloperWorks) that give introductions. That said, you might still want to get the JWSDP, as it contains a tutorial on all aspects of using web services with Java. I'm not sure if it has its own SOAP implementation.
Axis is not just a Web app. It's a (partial) JAX-RPC spec, a set of command-line tools, and some runtime libraries that can be deployed into a Web container.
IMO, Axis and JWSDP are similar in several ways: they are both Web service toolkits that aim to support the Web Services Basic Profile. JWSDP is more "fussy" with what it supports in WSDL, Axis is more flexible. Both go too far one way or the other: JWSDP will complain about WSDLs that are correct according to the WSDL spec; Axis will allow WSDLs that are incorrect, and "guess" what you meant. (JWSDP is maddening in this respect - it has some ridiculous un-documented limitations. My favourite error using it was: "error: generator error: internal error (should not happen): tie.generator.002")
Other differences, off the top of my head:
JWSDP is more than a Web services toolkit - it includes a standalone JAXB implementation, etc.
JWSDP seems, to me, to be a better put-together package: it includes support for various security standards. There are Apache libraries for these standards (some are in fact used in JWSDP) but using them is more difficult, as the documentation is significantly poorer.
JWSDP has better documentation.
Axis, as far as I can gather, is more widely used. This is just a hunch, mind.
I prefer Axis overall, but this is a personal choice. Once you're familiar with one, the other is not difficult to use.
Joined: Mar 25, 2002
Thank you. I'll start on Axis to begin with and gradually get onto JWSDP.