What’s Axis?
In order to install Axis you must have:
- Apache tomcat installed. Tomcat home (this tutorial use version 5.5)
- Java JDK installed. Java 1.5 Home (this tutorial use JDK 5.0 Update 16)
Now starts the installation:
- Download Axis from here (this tutorial use version 1.4)
- Download JavaBeans activation framework JAF
- Unpack Axis archive to your deploy directory.
- Copy the directory <axis deploy dir>\webapps under the <tomcat deploy dir>\webapps
- Copy the file “activation.jar” under some directory under the classpath or visible to tomcat (i choose <tomcat deploy dir>\shared\lib)
- Configure the system environment variable (System properties > tab Advanced > Environment Variables ) as follow: (according to you axis and java 1.5 SDK deploy directory)
set AXIS_HOME=c:\axis
set AXIS_LIB=%AXIS_HOME%\lib
set AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery.jar;
%AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;
%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar
set JAVA_HOME=c:\Java\jdk1.5.0_16
go to page: http://localhost:8080/axis/happyaxis.jsp to test installaion
Follow this article to test your fresh installation with some custom webservices.
For different OS you have only to change Environment Variables section accordingly to your situation.
Have a nice day
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[ ] 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;
-
}
-
}
-
<deployment xmlns="http://xml.apache.org/axis/wsdd/">
-
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
-
xmlns:myNS="http://www.synaptica.info" >
-
<service name="CompanyRepository" provider="java:RPC"></service></deployment>
-
<parameter name="className" value="com.server.CompanyService"></parameter>
-
<parameter name="allowedMethods" value="getCompanyData"></parameter>
-
<parameter name="wsdlTargetNamespace" value="CompanyService"></parameter> <beanmapping qname="myNS:Company" languagespecifictype="java:com.server.Company"></beanmapping></deployment>
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
-
<?xml version="1.0" encoding="UTF-8"?>
-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
<soapenv:Body> <getCompanyDataResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
-
<getCompanyDataReturn href="#id0"/> </getCompanyDataResponse>
-
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:Company" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://www.synaptica.info"> <companyID href="#id1"/>
-
<companyName xsi:type="soapenc:string">Test</companyName>
-
<employeeNames xsi:type="soapenc:string">Balaji</employeeNames> <employeeNames xsi:type="soapenc:string">LSMS</employeeNames>
-
<employeeNames xsi:type="soapenc:string">LLQ</employeeNames> </multiRef><multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">2311 </multiRef> </soapenv:Body>
-
</soapenv:Envelope>
to undeploy
-
<undeployment>
-
xmlns="http://xml.apache.org/axis/wsdd/">
-
<!– Services from SommaService WSDL service –>
-
<service name="CompanyRepository">
-
</service></undeployment>
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
Ultimi commenti
RSS