What environment are you working in?
Many of the superplatforms (IBM Websphere, BEA WebLogic, Oracle Application Server, etc.) have their own
Java enterprise specifications compliant web services toolkit. But even within each product line the support varies with the version of the product (which correlates to the level of Java enterprise specifications they comply with). More recent versions of
JBoss (4.0.5 and up) support
JBossWS. Spring has
Spring-WS. However some people prefer to use an independent web services tool like Axis2 or Apache CXF (
The ServerSide: Axis, Axis2, and CXF: Surveying the WS Landscape).
Strictly speaking you don't need a web services toolkit to access a web service, you can "simply" write your own
SAAJ client (
Java Web Services in a Nutshell: Chapter 3 SAAJ (PDF)). However that requires that you interpret the WSDL yourself. That is why most people prefer to use a WSDL-To-Java generation tool that generates static Java stubs from the WSDL. Depending on the web services toolkit that tool may be called wsdl2java, wscompile, wsimport, etc.
"3. WSDL2Java: Generate the Server-side Wrapper Code and Stubs For Easy Client Access" from
Creating Web Services with Apache Axis shows an example of the process. However do not misinterpret this as an endorsement to use Axis 1.x. Axis 1.x is based on JAX-RPC, a specification that most likely won't be a required part of the Java Enterprise specification beyond Java EE 5. You're probably better off choosing something that is based on JAX-WS. Know what you are getting in to.
Have a look over the
web services FAQ