The standard way in Java to write a web service is to use Apache Axis.
If you are generating a web service client, then you need the WSDL (.xsd, .wsdl, etc) of the foreign web service, and then you can use wsdl2java (or preferably, the ANT task provided by axis-ant) to simply generate the code to do the communications and a model.
If you are generating a web service on the server side, then you can use Java2WSDL to turn a Java model into a web service implementation, although you will have to code the server side within the Impl class it generates. You can then easily deploy on Tomcat, etc, using the axis.war and the generated deploy.wsdd script.
There's plenty of documentation out there that will help.