<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.2 at 2021-08-01 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20210801" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; Axis2 Installation Guide</title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="../css/site.css" />
    <link rel="stylesheet" href="../css/print.css" media="print" />
      <script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script>
<meta name="generator" content="HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" /><meta http-equiv="content-type" content="" />      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Axis2"/></a></div>
        <div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/axis.jpg" /></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2021-08-01<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.8.0<span class="divider">|</span></li>
        <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="../index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li>
    <li class="active ">Axis2 Installation Guide</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
<ul class="nav nav-list">
          <li class="nav-header">Axis2/Java</li>
    <li><a href="../index.html" title="Home"><span class="none"></span>Home</a>  </li>
    <li><a href="../download.html" title="Downloads"><span class="none"></span>Downloads</a>  </li>
    <li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
      <ul class="nav nav-list">
    <li><a href="../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a>  </li>
    <li><a href="../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a>  </li>
    <li><a href="../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a>  </li>
    <li><a href="../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a>  </li>
    <li><a href="../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a>  </li>
    <li><a href="../release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a>  </li>
      </ul>
  </li>
    <li><a href="../modules/index.html" title="Modules"><span class="none"></span>Modules</a>  </li>
    <li><a href="../tools/index.html" title="Tools"><span class="none"></span>Tools</a>  </li>
          <li class="nav-header">Documentation</li>
    <li><a href="../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a>  </li>
    <li class="active"><a href="#"><span class="none"></span>Installation Guide</a>
  </li>
    <li><a href="../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a>  </li>
    <li><a href="../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a>  </li>
    <li><a href="../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a>  </li>
    <li><a href="../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a>  </li>
    <li><a href="../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a>  </li>
    <li><a href="../docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a>  </li>
    <li><a href="../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a>  </li>
          <li class="nav-header">Resources</li>
    <li><a href="../faq.html" title="FAQ"><span class="none"></span>FAQ</a>  </li>
    <li><a href="../articles.html" title="Articles"><span class="none"></span>Articles</a>  </li>
    <li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a>  </li>
    <li><a href="../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a>  </li>
    <li><a href="../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a>  </li>
          <li class="nav-header">Get Involved</li>
    <li><a href="../overview.html" title="Overview"><span class="none"></span>Overview</a>  </li>
    <li><a href="../git.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a>  </li>
    <li><a href="../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a>  </li>
    <li><a href="../release-process.html" title="Release Process"><span class="none"></span>Release Process</a>  </li>
    <li><a href="../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a>  </li>
    <li><a href="../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a>  </li>
          <li class="nav-header">Project Information</li>
    <li><a href="../team-list.html" title="Project Team"><span class="none"></span>Project Team</a>  </li>
    <li><a href="../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a>  </li>
    <li><a href="https://github.com/apache/axis-axis2-java-core/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a>  </li>
    <li><a href="../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a>  </li>
          <li class="nav-header">Apache</li>
    <li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a>  </li>
    <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a>  </li>
    <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a>  </li>
    <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a>  </li>
  </ul>
          <hr />
          <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
  <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
              </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >
<html xmlns="http://www.w3.org/1999/xhtml">


<h1 align="center">Apache Axis2 Installation Guide</h1>

<p>This document provides information on Axis2 distribution
packages, system prerequisites and setting up environment variables
and tools followed by detailed instructions on installation
methods.</p>

<p><i>Send your feedback to: <a class="externalLink" href="mailto:java-dev@axis.apache.org?subject=[Axis2]">java-dev@axis.apache.org</a></i>
mailing list. (Subscription details are available on <a href="../mail-lists.html">Axis2 site</a>.)
Kindly prefix every email subject with [Axis2].</p>
<section>
<h2><a name="Contents"></a>Contents</h2>

<ul>

<li><a href="#Download_Axis2">Axis2 Distributions</a></li>

<li><a href="#requirements">System Requirements</a></li>

<li><a href="#standalone">Installing Axis2 as a Standalone Server
using the Standard Binary Distribution</a>

<ul>

<li><a href="#standalone1">Installing the Apache Axis2 Binary
Distribution</a></li>

<li><a href="#standalone2">Starting up Axis2 Standalone
Server</a></li>

<li><a href="#standalone3">Building the Axis2 WAR File Using the
Standard Binary Distribution</a></li>

<li><a href="#standalone4">Getting Familiar with Convenient Axis2
Scripts</a></li>
</ul>
</li>

<li><a href="#servlet_container">Installing Axis2 in a Servlet
Container</a></li>

<li><a href="#upload">Uploading Services</a></li>

<li><a href="#advanced">Advanced</a>

<ul>

<li><a href="#source">Axis2 Source Distribution</a>

<ul>

<li><a href="#a_Toc96698083">Setting up the Environment and
Tools</a></li>

<li><a href="#a_Toc96698085">Building Axis2 Binaries and the WAR
file Using the Source Distribution</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<a name="Download_Axis2" id="Download_Axis2"></a>
<section>
<h2><a name="Axis2_Distributions"></a>Axis2 Distributions</h2>

<p>Axis2 is distributed in several convenient distribution packages
and can be installed either as a standalone server or as part of a
J2EE compliant servlet container. Axis2 is distributed under the
Apache License, version 2.0. This Installation Guide will mainly
focus on running Apache Axis2 using the Standard Binary
Distribution.</p>

<p><a href="../download.cgi">
Download</a> distribution packages of the Apache Axis2
1.8.0 version (latest).</p>

<p><a href="../download.cgi">Download</a>
distribution packages of all versions of Apache Axis2.</p>

<p>The distribution packages provided are as follows:</p>
<a name="std-bin" id="std-bin"></a>
<section>
<h3><a name="a1._Standard_Binary_Distribution"></a>1. Standard Binary Distribution</h3>

<p>This is the complete version of Axis2 and includes samples and
convenient scripts as well.</p>

<p><a href="../download.cgi">
Download</a> Standard Binary Distribution</p>
<a name="war1" id="war1"></a>
</section><section>
<h3><a name="a2._WAR_.28Web_Archive.29_Distribution"></a>2. WAR (Web Archive) Distribution</h3>

<p>This is the Web application of Axis2, which can be deployed in
most of the servlet containers.</p>

<p><a href="../download.cgi">
Download</a> WAR (Web Archive) Distribution</p>
</section><section>
<h3><a name="a3._Documents_Distribution"></a>3. Documents Distribution</h3>

<p>This contains all the documentation in one package. The package
includes the xdocs and the Java API docs of this project.</p>

<p><a href="../download.cgi">
Download</a> Documents Distribution</p>
</section><section>
<h3><a name="a4._Source_Distribution"></a>4. Source Distribution</h3>

<p>This contains the sources of Axis2 standard distribution, and is
mainly for the benefit of advanced users. One can generate a binary
distribution using the source by typing <span class="style1">$mvn
-Drelease install.</span> You need to set up the Axis2 environment before
running this command. Step by step details on how to create the
binary distribution is available in the <a href="#advanced">Advanced</a> section.</p>

<p><a href="../download.cgi">
Download</a> Source Distribution</p>
<a name="requirements" id="requirements"></a>
</section><section>
<h2><a name="System_Requirements"></a>System Requirements</h2>

<table border="0" class="table table-striped">
<tbody>

<tr class="a">

<td>Java Development Kit (JDK)</td>

<td>1.5 or later (For instructions on setting up the JDK in
different operating systems, visit <a class="externalLink" href="http://java.sun.com/">http://java.sun.com</a>)</td>
</tr>

<tr class="b">

<td>Disk</td>

<td>Approximately 11 MB separately for standard binary
distribution</td>
</tr>

<tr class="a">

<td>Operating system</td>

<td>Tested on Windows XP, Linux, Mac OS X, Fedora core, Ubuntu,
Gentoo</td>
</tr>

<tr class="b">

<td><b>Build Tool</b>-<a class="externalLink" href="http://ant.apache.org/">Apache Ant</a>

<p>To run samples and to build WAR files from Axis2 binary
distribution.</p>
</td>

<td>Version 1.6.5 or higher (<a class="externalLink" href="http://ant.apache.org/bindownload.cgi">download</a>).</td>
</tr>

<tr class="a">

<td><b>Build Tool</b>- <a class="externalLink" href="http://maven.apache.org/">Apache Maven 2.x</a>

<p>Required <i>only</i> for building Axis2 from Source
Distribution</p>
</td>

<td>2.0.7 or higher in Maven 2.x series (<a class="externalLink" href="http://maven.apache.org/download.html">download</a>).
<b>Please download Maven 2.x version. Axis2 does not support
Maven 1.x anymore.</b></td>
</tr>
</tbody>
</table>

<p>Make sure that the above prerequisites are available for the
Axis2 installation.</p>
<a name="standalone" id="standalone"></a>
<section>
<h2><a name="Installing_Axis2_as_a_Standalone_Server_using_the_Standard.0ABinary_Distribution"></a>Installing Axis2 as a Standalone Server using the Standard
Binary Distribution</h2>
<a name="standalone1" id="standalone1"></a>

<p>This section provides you with the following information</p>

<ol style="list-style-type: decimal">

<li>Install Axis2 as a standalone server using the Standard Binary
Distribution</li>

<li>Start up the Axis2 standalone server</li>

<li>Building the axis2.war file (using the Standard Binary
Distribution) which is required to run Axis2 as part of a J2EE
compliant servlet container</li>

<li>Running Axis2 convenient scripts</li>
</ol>
<section>
<h3><a name="a1._Download_and_Install_the_Apache_Axis2_Binary.0ADistribution"></a>1. Download and Install the Apache Axis2 Binary
Distribution</h3>

<p><a class="externalLink" href="http://java.sun.com/j2se/">Download</a> and install a
Java Development Kit (JDK) release (version 1.5 or later). Install
the JDK according to the instructions included with the release.
Set an environment variable JAVA_HOME to the pathname of the
directory into which you installed the JDK release.</p>

<p>Download and unpack the <a href="../download.cgi">
Axis2 Standard Binary Distribution</a> into a convenient location
so that the distribution resides in its own directory. Set an
environment variable AXIS2_HOME to the pathname of the extracted
directory of Axis2 (Eg: /opt/axis2-1.8.0). Linux users
can alternatively run the setenv.sh file available in the
AXIS2_HOME/bin directory to set the AXIS2_HOME environment variable
to the Axis2 classpath.</p>
</section><section>
<h3><a name="a2._Starting_up_Axis2_Standalone_Server"></a>2. Starting up Axis2 Standalone Server</h3>

<p>The standalone Axis2 server can be started by executing the
following commands:<br />
%AXIS2_HOME%\bin\axis2server.bat (Windows)<br />
$AXIS2_HOME/bin/axis2server.sh (Unix)</p>

<p>After startup, the default web services included with Axis2 will
be available by visiting http://localhost:8080/axis2/services/</p>
<a name="standalone3" id="standalone3"></a>
</section><section>
<h3><a name="a3._Building_the_Axis2_Web_Application_.28axis2.war.29_Using.0AStandard_Binary_Distribution"></a>3. Building the Axis2 Web Application (axis2.war) Using
Standard Binary Distribution</h3>

<p><a class="externalLink" href="http://ant.apache.org/bindownload.cgi">Download</a> and
install Apache Ant (version 1.6.5 or later). Install Apache Ant
according to the instructions included with the Ant release.</p>

<p>Locate the Ant build file (build.xml) inside the webapp
directory, which resides in your Axis2 home directory (i.e:-
$AXIS_HOME/webapp)&quot;. Run the Ant build by executing &quot;ant
create.war&quot; inside the AXIS2_HOME/webapps folder. You can find the
generated axis2.war inside the AXIS2_HOME/dist directory. All the
services and modules that are present in the AXIS2_HOME/repository
will be packed into the created axis2.war together with the Axis2
configuration found at AXIS2_HOME/conf/axis2.xml.</p>

<p>Read <a href="#servlet_container">Installing Axis2 in a Servlet
Container</a> to find out how to deploy the Axis2 Web application
in a servlet container.</p>
<a name="standalone4" id="standalone4"></a>
</section><section>
<h3><a name="a4._Getting_Familiar_with_the_Convenient_Axis2_Scripts"></a>4. Getting Familiar with the Convenient Axis2 Scripts</h3>

<p>It is advised to add the AXIS2_HOME/bin to the PATH, so that
you'll be able to run the following scripts from anywhere.</p>

<table border="0" class="table table-striped">
<tbody>

<tr class="a">

<td><b>Script Name</b></td>

<td><b>Description</b></td>
</tr>

<tr class="b">

<td>axis2.{bat|sh}</td>

<td>You can use this script to run web service clients written
using Axis2. This script calls the &quot;java&quot; command after adding the
classpath for Axis2 dependent libraries (*.jar files present in
your AXIS2_HOME/lib), setting the Axis2 repository location
(AXIS2_HOME/repository) and setting the Axis2 configuration file
location(AXIS2_HOME/conf/axis2.xml) for you. With this you can be
relieved from setting all the above Axis2 specific
parameters.<br />

<p><i>Usage : axis2.{sh.bat} [-options] class [args...]</i></p>
</td>
</tr>

<tr class="a">

<td>axis2server.{sh|bat}</td>

<td>This script will start a standalone Axis2 server using the
AXIS2_HOME/repository as the Axis2 repository and the
AXIS2_HOME/conf/axis2.xml as the Axis2 configuration file. This
will start all the transport listeners listed in the
AXIS2_HOME/conf/axis2.xml.

<p>For example, if you want to deploy a service using a standalone
Axis2 server,then copy your service archive to the
AXIS2_HOME/repository/services directory. Next, go to the
&quot;Transport Ins&quot; section of the AXIS2_HOME/conf/axis2.xml and
configure the transport receivers (simpleHttpServer in port 8080 is
listed by default). Then invoke this script.</p>

<p>The server can be started in debug mode by adding the <code>-xdebug</code>
option to the command line. A remote debugger can then be attached by
connecting to port 8000.</p>
</td>
</tr>

<tr class="b">

<td>wsdl2java.{bat|sh}</td>

<td>This script generates Java code according to a given WSDL file
to handle Web service invocations (client-side stubs). This script
also has the ability to generate web service skeletons according to
the given WSDL.<br />

<p><i>Usage: wsdl2java.{sh|bat} [OPTION]... -uri &lt;Location of
WSDL&gt;</i></p>

<p>e.g., wsdl2java.sh -uri ../wsdl/Axis2Sample.wsdl</p>

<p>A more detailed reference about this script can be found
<a href="reference.html">here</a></p>
</td>
</tr>

<tr class="a">

<td>java2wsdl.{bat|sh}</td>

<td>This script generates the appropriate WSDL file for a given
Java class.<br />

<p><i>Usage: Java2WSDL.{sh|bat} [OPTION]... -cn &lt;fully
qualified class name&gt;</i></p>

<p>e.g., Java2WSDL.sh -cn ../samples/test/searchTool.Search</p>

<p>A more detailed reference about this script can be found
<a href="reference.html">here</a></p>
</td>
</tr>
</tbody>
</table>
<a name="servlet_container" id="servlet_container"></a>
</section><section>
<h2><a name="Installing_Axis2_in_a_Servlet_Container"></a>Installing Axis2 in a Servlet Container</h2>

<p>Whichever the distribution, installing Axis2 in a J2EE compliant
servlet container is as follows:</p>

<ol style="list-style-type: decimal">

<li>Build the Axis2 WAR file using the Axis2 <a href="#standalone3">Standard Binary Distribution</a>. (Alternatively you
can <a href="../download.cgi">
download</a> the axis2.war file or you can build axis2.war using
the <a href="#war">Source Distribution</a>.</li>

<li>Drop the WAR file in the webapps folder of the servlet
container. Most servlet containers will automatically install the
WAR file. (Some servlet containers may require a restart in order
to capture the new web application. Refer to your servlet container
documentation for more information.)
</li>

<li>Once the WAR is successfully installed, test it by pointing the
web browser to the <b>http://&lt;host
:port&gt;/axis2.</b> It should produce the following page
which is the <b>Axis2 Web Application Home Page</b>.
<img src="images/clip_image006.jpg" alt="" />
</li>

<li>Use the link &quot;Validate&quot; to ensure that everything is running
correctly. If the validation fails then the WAR has failed to
install properly or some essential jars are missing. In such a
situation, refer to the documentation of the particular servlet
container to find the problem. The following page shows a
successful validation. Note the statement that indicates the core
Axis2 libraries are present.
<img src="images/happyaxis.jpg" alt="" />
</li>
</ol>
<a name="upload" id="upload"></a>

<p><b>Note:</b> For any Application server specific
installation information please refer to the <a href="app_server.html">Application Server Specific Configuration
Guide</a>.</p>
<section>
<h2><a name="Uploading_Services"></a>Uploading Services</h2>

<div style="margin-left: 2em">

<p>The Axis2 Web application also provides an interface to upload
services. Once a service archive file is created according to the
service specification as described in the <a name="adv-userguide.html" id="adv-userguide.html">Advanced User's Guide</a>, that .aar file can
be uploaded using the upload page.</p>

<p align="center"><b><img src="images/clip_image010.jpg" alt="" /></b></p>

<p>The uploaded .aar files will be stored in the default service
directory. For Axis2, this will be the
&lt;webapps&gt;/axis2/WEB-INF/services directory. Once a service is
uploaded, it will be installed instantly.</p>
<a name="hot_deployment" id="hot_deployment"></a>

<p>Since Axis2 supports <b>hot deployment</b>, you can
drop the service archive directly through the file system to the
above mentioned services directory. It will also cause the service
to be automatically installed without the container being
restarted.</p>

<p>Use the 'Services' link on the Web Application home page to
check the successful installation of a service. The services and
the operations of successfully installed services will be displayed
on the available services page.</p>

<p align="center"><img src="images/clip_image012.jpg" alt="" /></p>

<p>If the service has deployment time errors it will list those
services as faulty services. If you click on the link, you will see
the deployment fault error messages.</p>

<p align="center"><img src="images/faultservice.jpg" alt="" /></p>

<p>Deployment time error message</p>

<p align="center"><b><img src="images/faultmsg.jpg" alt="" /></b></p>

<p>Axis2 Administration is all about configuring Axis2 at the run
time and the configuration will be transient. More descriptions are
available in the <a href="webadminguide.html">Axis2
Web Administration Guide</a></p>
</div>
<a name="advanced" id="advanced"></a>
<section>
<h2><a name="Advanced"></a>Advanced</h2>
<a name="source" id="source"></a>
<section>
<h2><a name="Axis2_Source_Distribution"></a>Axis2 Source Distribution</h2>
<a name="a_Toc96698083"></a> By using the Source Distribution, both
binary files (which can be downloaded as the <a href="#std-bin">Standard Binary Distribution</a>) and the axis2.war file
(which can be downloaded as the <a href="#war1">WAR
distribution</a>) can be built using Maven commands.

<p>Required jar files do not come with the distribution and they
will also have to be built by running the maven command. Before we
go any further, it is necessary to install <a class="externalLink" href="http://maven.apache.org/">Maven2</a> and
set up its environment, as explained below.</p>
<a name="env-src" id="env-src"></a>
<section>
<h3><a name="Setting_Up_the_Environment_and_Tools"></a>Setting Up the Environment and Tools</h3>
<a name="maven" id="maven"></a>
<section>
<h4><a name="Maven"></a>Maven</h4>

<p>The Axis2 build is based on <a class="externalLink" href="http://maven.apache.org/">Maven2</a> .
Hence the only prerequisite to build Axis2 from the source
distribution is to have Maven installed. Extensive instruction
guides are available at the Maven site. This guide however contains
the easiest path for quick environment setting. Advanced users who
wish to know more about Maven can visit <a class="externalLink" href="http://maven.apache.org/users/index.html">this site.</a></p>

<ul>

<li>MS Windows</li>
</ul>

<ol style="list-style-type: decimal">

<li>Download and run the Windows installer package for Maven.</li>

<li>Set the 'Environment Variables' ( create system variable
MAVEN_HOME and edit path. eg: &quot;C:\Program Files\Apache Software
Foundation\maven-2.0.7&quot;; path %MAVEN_HOME%\bin)</li>

<li>Make sure that the system variable JAVA_HOME is set to the
location of your JDK, eg. C:\Program Files\Java\jdk1.5.0_11</li>

<li>Run mvn -v or mvn -version to verify that it is correctly
 installed.</li>
</ol>

<p align="center"><img src="images/clip_image002.jpg" alt="clip_image002 (15K)" /></p>

<ul>

<li>Unix based OS (Linux etc)</li>
</ul>

<p>The tar ball or the zip archive is the best option. Once the
archive is downloaded expand it to a directory of choice and set
the environment variable MAVEN_HOME and add MAVEN_HOME/bin to the
path as well. <a class="externalLink" href="http://maven.apache.org/download.html">More
instructions</a> for installing Maven in Unix based operating
systems.</p>

<p>Once Maven is properly installed, you can start building
Axis2.</p>

<p><a href="../faq.html#d4">Maven commands that are frequently
used</a> in Axis2 are listed on the <a href="../faq.html">FAQs</a>
page.</p>
<a name="a_Toc96698085"></a>
</section></section><section>
<h3><a name="Building_Binaries_and_the_WAR_File_Using_the_Source.0ADistribution"></a>Building Binaries and the WAR File Using the Source
Distribution</h3>

<p>The Source Distribution is available as a zipped archive. All
the necessary build scripts are included with the source
distribution. Once the source archive is expanded into a directory
of choice, moving to the particular directory and running
<code>mvn install</code> command will build the Axis2 jar file.</p>

<p>Once the command completes, the binaries (jar files in this
case) can be found at a newly created &quot;target&quot; directory.</p>

<p><b>Note: For the first Maven build (if the maven repository
is not built first) it will take a while since the required jars
need to be downloaded. However, this is a once only process and
will not affect any successive builds.</b></p>
<a name="war" id="war"></a>

<p>The default maven build will generate the war under modules/webapp/target directory</p>
<a name="a_Toc96698086"></a>
</section>
</html>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2021
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>
