<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2016-05-02 
 | Rendered using Apache Maven Fluido Skin 1.4
-->
<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="20160502" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; Axis2 Installation Guide</title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.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.4.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: 2016-05-02
                      <span class="divider">|</span>
                   </li>
                  <li id="projectVersion">Version: 1.7.2
                          <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.7.1.html" title="1.7.1">
          <span class="none"></span>
        1.7.1</a>
            </li>
                    
      <li>
  
                          <a href="../release-notes/1.7.2.html" title="1.7.2">
          <span class="none"></span>
        1.7.2</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="../svn.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="http://svn.apache.org/viewvc/axis/axis2/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" >
                                  
            <!-- ~ 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><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>

<div class="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.7.2 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><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>
</div>
<div class="section">
<h3><a name="a2._WAR_Web_Archive_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>
</div>
<div class="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>
</div>
<div class="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>
</div>
<div class="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>

<div class="section">
<h2><a name="Installing_Axis2_as_a_Standalone_Server_using_the_StandardBinary_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>

<div class="section">
<h3><a name="a1._Download_and_Install_the_Apache_Axis2_BinaryDistribution"></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.7.2). 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><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>
</div>
<div class="section">
<h3><a name="a3._Building_the_Axis2_Web_Application_axis2.war_UsingStandard_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>
</div>
<div class="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 <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><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>

<div class="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>

<div class="section">
<h2><a name="Advanced"></a>Advanced</h2>
<a name="source" id="source"></a>

<div class="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>

<div class="section">
<h3><a name="Setting_Up_the_Environment_and_Tools"></a>Setting Up the Environment and Tools</h3>
<a name="maven" id="maven"></a>

<div class="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>
</div></div>
<div class="section">
<h3><a name="Building_Binaries_and_the_WAR_File_Using_the_SourceDistribution"></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
<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>

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                                      <p >Copyright &copy;                    2004&#x2013;2016
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
                </div>

        
                </div>
    </footer>
        </body>
</html>