Please be careful with how you use the phrase "JAX-RPC".  JAX-RPC is a
specification.  You folks are referring to it as an implementation (I
assume you're talking about Sun's Java Web Services Developer Pack Early
Access, which complies with JAX-RPC?).

One of the goals of AXIS is to fully comply with the JAX-RPC specification.
We're not there, yet.  But neither is the JAX-RPC spec!  It's still a
moving target, version 0.8, and won't become 'official' until probably
sometime this summer.

Russell Butek
[EMAIL PROTECTED]


"Daniel F. Savarese" <[EMAIL PROTECTED]> on 03/20/2002 07:05:21 PM

Please respond to [EMAIL PROTECTED]

To:    [EMAIL PROTECTED]
cc:
Subject:    Re: why Axis?




In message <003601c1d060$d5c3c7a0$9f05560c@DELL850>, "Stan Jordan" writes:
>Every time I pick up a magazine, I see an article advising Java
programmers
>to build Web Services via JAX-RPC and JAXM APIs.  The articles are
complete
>with lotsa examples (but do not mention Axis).

As someone who wrote about JAXM and has been writing about XML/Web services
APIs, I'll make a few comments.  First, so-called "standard" APIs
coming out of the Java Community Process are subjects editors like to
see articles about, so you'll tend to see a lot of them.  Axis only
recently entered beta and editors don't like to publish material that
becomes outdated in the two months it takes for a submission to be
published, so that's why it probably hasn't been covered.  Now that Axis
is in beta, I plan to write my next column (won't be published until July)
on Axis because ... after having used JAXM extensively, I can certify that
JAXM is an absolute piece of garbage that should never have passed muster
(it barely did with a 7-6 vote).

>Where does Axis fit into this picture?  I don't want to sound rude, but
why
>would I program with Axis, rather than using the JAX-RPC and JAXM APIs?

One big reason to use Axis is that as you encounter deficiencies in design
or functionality, you can bring them to light, discuss them, and submit
patches.  You can't do this with JAXM or JAX-RPC because not even the
source code is available to you.  JAX-RPC is much better designed than
JAXM, but it is oriented strictly at RPC functionality and doesn't provide
document-oriented SOAP manipulation functionality like JAXM's
javax.xml.soap
package.  Axis doesn't (or eventually won't) limit you to any one model.
I'll let others go into more detail, but Axis is simply a more complete
solution.  JAXM should be avoided at all costs if you want to do
asynchronous messaging (e.g., asynchronous messaging endpoints must be
preconfigured before use; you cannot message to an arbitrary URL on the
fly, only predefined URI to URL mappings) or manipulate SOAP messages
on a fine-grained level.  javax.xml.soap does not interoperate with DOM
(which you need if you have a bunch of pre-existing DOM-based code)
beyond allowing you the entire content of a message to be set from
a javax.xml.transform.Source.  The only piecemeal message modification
supported is with the javax.xml.soap.Node derived classes.

>speculate beyond JAX-RPC and JAXM (to say, JAXB) that would be very cool.

Regarding JAXB, many people (including myself) have found that it's too
early to use it even though it looks very good so far (it's not expected
to be finalized until Q3 or Q4).  Forget about trying to make JAX-RPC or
JAXM play well with JAXB (eventually they'll have to play well together,
but I doubt they will until sometime in 2003).  Castor is a much more
productive investment of your time.

I haven't really justified my statements, but they come from the school
of hard knocks: trying to use the so-called standards and abandoning them
because of their inability to meet my application development requirements.

daniel




Reply via email to