What's the current SOAP implementation?
If you're doing J2EE and working inside a container, then it's whatever
your container provides.
There is a standard called JAX-WS which is about web services, including
SOAP. There are several implementations. Most app servers these days
contain one (sometimes more than one). The path of least pain is usually
to use that one, rather than try to bring in another. For example, in
JBoss, use JBoss-WS, not Metro.
Because the APIs are standardised, there's pretty good portability between
implementations, so you can move between app servers fairly easily, and
can also use different toolkits for standalone and contained versions of
your code, which can be useful for development (i've done this - get the
basics of a SOAP interaction working in a standalone program, then bring
it into an existing web app).
If you're not working inside a container, then Metro.
tom