<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Jun 28, 2015 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache Axis2 - 


Axis2 Installation Guide</title>
    <style type="text/css" media="all">
      @import url("../css/maven-base.css");
      @import url("../css/maven-theme.css");
      @import url("../css/site.css");
    </style>
    <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20150628" />
    <meta http-equiv="Content-Language" content="en" />
        <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="composite">
    <div id="banner">
                        <a href="http://www.apache.org/" id="bannerLeft">
                                        <img src="http://www.apache.org/images/asf_logo_wide.png" alt="Apache Axis2" />
                </a>
                                            <a href=".././" id="bannerRight">
                                                <img src="../images/axis.jpg" alt="Apache Axis2" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
            
                <div class="xleft">
        <span id="publishDate">Last Published: 2015-06-28</span>
                  &nbsp;| <span id="projectVersion">Version: 1.6.3</span>
                      </div>
            <div class="xright">                    <a href="../index.html" title="Axis2/Java">Axis2/Java</a>
            |
                        <a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a>
              
            
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
            
                                <h5>Axis2/Java</h5>
                  <ul>
                  <li class="none">
                          <a href="../index.html" title="Home">Home</a>
            </li>
          </ul>
                       <h5>Downloads</h5>
                  <ul>
                  <li class="none">
                          <a href="../download.cgi" title="Releases">Releases</a>
            </li>
                  <li class="none">
                          <a href="../modules/index.html" title="Modules">Modules</a>
            </li>
                  <li class="none">
                          <a href="../tools/index.html" title="Tools">Tools</a>
            </li>
          </ul>
                       <h5>Documentation</h5>
                  <ul>
                  <li class="none">
                          <a href="../docs/toc.html" title="Table of Contents">Table of Contents</a>
            </li>
                  <li class="none">
            <strong>Installation Guide</strong>
          </li>
                  <li class="none">
                          <a href="../docs/quickstartguide.html" title="QuickStart Guide">QuickStart Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/userguide.html" title="User Guide">User Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/jaxws-guide.html" title="JAXWS Guide">JAXWS Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/pojoguide.html" title="POJO Guide">POJO Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/spring.html" title="Spring Guide">Spring Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/webadminguide.html" title="Web Administrator's Guide">Web Administrator's Guide</a>
            </li>
                  <li class="none">
                          <a href="../docs/migration.html" title="Migration Guide (from Axis1)">Migration Guide (from Axis1)</a>
            </li>
          </ul>
                       <h5>Resources</h5>
                  <ul>
                  <li class="none">
                          <a href="../faq.html" title="FAQ">FAQ</a>
            </li>
                  <li class="none">
                          <a href="../articles.html" title="Articles">Articles</a>
            </li>
                  <li class="none">
                          <a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki">Wiki</a>
            </li>
                  <li class="none">
                          <a href="../refLib.html" title="Reference Library">Reference Library</a>
            </li>
                  <li class="none">
                          <a href="../api/index.html" title="Online Java Docs">Online Java Docs</a>
            </li>
          </ul>
                       <h5>Get Involved</h5>
                  <ul>
                  <li class="none">
                          <a href="../overview.html" title="Overview">Overview</a>
            </li>
                  <li class="none">
                          <a href="../svn.html" title="Checkout the Source">Checkout the Source</a>
            </li>
                  <li class="none">
                          <a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                  <li class="none">
                          <a href="../release-process.html" title="Release Process">Release Process</a>
            </li>
                  <li class="none">
                          <a href="../guidelines.html" title="Developer Guidelines">Developer Guidelines</a>
            </li>
                  <li class="none">
                          <a href="../siteHowTo.html" title="Build the Site">Build the Site</a>
            </li>
          </ul>
                       <h5>Project Information</h5>
                  <ul>
                  <li class="none">
                          <a href="../team-list.html" title="Project Team">Project Team</a>
            </li>
                  <li class="none">
                          <a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
            </li>
                  <li class="none">
                          <a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code">Source Code</a>
            </li>
                  <li class="none">
                          <a href="../thanks.html" title="Acknowledgements">Acknowledgements</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License">License</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
            </li>
                  <li class="none">
                          <a href="http://www.apache.org/security/" class="externalLink" title="Security">Security</a>
            </li>
          </ul>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
      </a>
                   
            
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <!-- ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License. --><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>
<div class="section"><h2>Contents<a name="Contents"></a></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>
<div class="section"><h2>Axis2 Distributions<a name="Axis2_Distributions"></a></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.6.3 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>
<div class="section"><h3>1. Standard Binary Distribution<a name="a1._Standard_Binary_Distribution"></a></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>
</div><div class="section"><h3>2. WAR (Web Archive) Distribution<a name="a2._WAR_Web_Archive_Distribution"></a></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>
</div><div class="section"><h3>3. Documents Distribution<a name="a3._Documents_Distribution"></a></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>
</div><div class="section"><h3>4. Source Distribution<a name="a4._Source_Distribution"></a></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>
</div><div class="section"><h2>System Requirements<a name="System_Requirements"></a></h2>
<table border="0" class="bodyTable">
<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>
<div class="section"><h2>Installing Axis2 as a Standalone Server using the Standard
Binary Distribution<a name="Installing_Axis2_as_a_Standalone_Server_using_the_StandardBinary_Distribution"></a></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>
<div class="section"><h3>1. Download and Install the Apache Axis2 Binary
Distribution<a name="a1._Download_and_Install_the_Apache_Axis2_BinaryDistribution"></a></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.6.3). 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>
</div><div class="section"><h3>2. Starting up Axis2 Standalone Server<a name="a2._Starting_up_Axis2_Standalone_Server"></a></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>
</div><div class="section"><h3>3. Building the Axis2 Web Application (axis2.war) Using
Standard Binary Distribution<a name="a3._Building_the_Axis2_Web_Application_axis2.war_UsingStandard_Binary_Distribution"></a></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>
</div><div class="section"><h3>4. Getting Familiar with the Convenient Axis2 Scripts<a name="a4._Getting_Familiar_with_the_Convenient_Axis2_Scripts"></a></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="bodyTable">
<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 <tt>-xdebug</tt>
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>
</div><div class="section"><h2>Installing Axis2 in a Servlet Container<a name="Installing_Axis2_in_a_Servlet_Container"></a></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>
<div class="section"><h2>Uploading Services<a name="Uploading_Services"></a></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>
<div class="section"><h2>Advanced<a name="Advanced"></a></h2>
<a name="source" id="source"></a>
<div class="section"><h2>Axis2 Source Distribution<a name="Axis2_Source_Distribution"></a></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>
<div class="section"><h3>Setting Up the Environment and Tools<a name="Setting_Up_the_Environment_and_Tools"></a></h3>
<a name="maven" id="maven"></a>
<div class="section"><h4>Maven<a name="Maven"></a></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>
</div></div><div class="section"><h3>Building Binaries and the WAR File Using the Source
Distribution<a name="Building_Binaries_and_the_WAR_File_Using_the_SourceDistribution"></a></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
<tt>mvn install</tt> 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>
</div>
</html>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
              Copyright &#169;                    2004-2015
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
            
                  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
