I am trying to create a web service, my tools of trade are:
**
Axis2, Eclipse, Tomcat, Ant
**
I need to creat
If you have access to the WSDL,the following code/JAX-WS client can be used to invoke any SOAP based web service.
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
public class WebserviceClient {
public static void main(String[] args) throws Exception {
URL url = new URL
("http://localhost:9999/ws/additionService?wsdl");
QName qname = new QName("http://test/",
"AdditionServiceImplService");//Line 2
Service service = Service.create(url, qname);
AdditionService additionService = service
.getPort(AdditionService.class);
System.out.println(additionService.add(1, 2));
}
}
In Line 2,QName
first argument is the namespace used in WSDL and second argument is simply the service name.
I'm assuming you're only interested in web service clients?
Invoke the web service is using Axis2 REST support, for example:
http://localhost:8080/axis2/services/MyService/myOperation?param1=one¶m2=two
Use SOAPUI. It can generate SOAP messages for you, by reading your service's WSDL. My client's testers have been using it extensively with only a very broad understanding of web service technologies. An impressive tool.
Groovy client (Same approach for other JVM based languages)
Use the wsdl2java tool to create a client stub class for the Shakespeare web service:
generate.sh:
$AXIS2_HOME/bin/wsdl2java.sh -d adb -s -o build -uri http://www.xmlme.com/WSShakespeare.asmx?WSDL
ant -file build/build.xml
GetSpeech.groovy:
// Dependencies
// ============
import com.xmlme.webservices.ShakespeareStub
@Grapes([
@Grab(group='org.apache.axis2', module='axis2-kernel', version='1.5.1'),
@Grab(group='org.apache.axis2', module='axis2-adb', version='1.5.1'),
@Grab(group='org.apache.axis2', module='axis2-transport-local', version='1.5.1'),
@Grab(group='org.apache.axis2', module='axis2-transport-http', version='1.5.1'),
@Grab(group='xerces', module='xercesImpl', version='2.6.2'),
@GrabConfig(systemClassLoader=true)
])
// Main program
// ============
def stub = new ShakespeareStub()
// Request payload
def request = new ShakespeareStub.GetSpeech()
request.setRequest("Friends, romans, countrymen")
// Send request
response = stub.getSpeech(request)
println response.getGetSpeechResult()
Use the -cp parameter to add the generated code the the script's classpath
groovy -cp build/build/classes GetSpeech