Deploying web service with Java and Axis
In this article we see how can we deploy a web service, you need to have apache, tomcat and axis up and running.
To publish a simple webservice:
Create a simple text file, for example “Somma.jws” like this
public class Somma {
public int somma(int a, int b) {
return a+b;
}
}
Put this file in the axis directory, for example: /usr/local/apache-tomcat-6.0.13/webapps/axis
the web service is already available at: http://localhost:8080/axis/Somma.jws
the WSDL: http://localhost:8080/axis/Somma.jws?wsdl
direct invocation via query string: http://localhost:8080/axis/Somma.jws?method=somma&a=2&b=3
This is a very interesting feature, you can call the web service via simple web request, for example via javascript, without the complicated stuff needed for invoking a web service .
The jws web service is simple and fast, but they support only standard type String, int and so on.
For a more complex web service you have to deploy it from the java source code, and a wsdd (Web Service Deployment Descriptor) text file:
Example:
package com.server;
public class Company {
public int companyID;
public String companyName;
public String[ ] employeeNames;
}
package com.server;
public class CompanyService{
/**
* @return company object
*/
public Company getCompanyData(){
Company company = new Company();
String [] employeeNames = new String[] { "Balaji", "LSMS" , "LLQ" };
company.companyID = 2311;
company.companyName = "Test";
company.employeeNames = employeeNames;
return company;
}
}
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:myNS="http://www.synaptica.info" >
Run (you can do it via the eclipse run dialog)
java org.apache.axis.client.AdminClient deployCompanyWS.wsdd
You have deployed your WS.
try it http://localhost:8080/axis/services/CompanyRepository?method=getCompanyData
note how the Company class is serialized through xml
Test
Balaji LSMS
LLQ 2311
to undeploy
xmlns="http://xml.apache.org/axis/wsdd/">
java org.apache.axis.client.AdminClient undeploy.wsdd
To create Java Helper class to call the web service just created:
java org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/services/CompanyRepository?wsdl
Una risposta.
[…] this article to test your fresh installation with some custom […]